Commit 468004ec authored by Raymond Knopp's avatar Raymond Knopp Committed by Florian Kaltenberger

LDPC SIMD optmizations and code generator (BG1)

Conflicts:
	cmake_targets/CMakeLists.txt
	openair1/PHY/CODING/TESTBENCH/ldpctest.c
	openair1/PHY/CODING/defs.h
	openair1/PHY/CODING/ldpc_generate_coefficient.c
parent cea0369a
......@@ -282,7 +282,7 @@ set(protobuf_generated_dir ${OPENAIR_BIN_DIR})
# RRC
######
add_list2_option(RRC_ASN1_VERSION "Rel10" "ASN.1 version of RRC interface" "Rel8" "Rel10" "CBA")
add_list2_option(RRC_ASN1_VERSION "Rel14" "ASN.1 version of RRC interface" "Rel8" "Rel10" "CBA")
if (${RRC_ASN1_VERSION} STREQUAL "Rel8")
set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-86.asn)
......@@ -1089,13 +1089,12 @@ set(PHY_SRC
${OPENAIR1_DIR}/PHY/CODING/nr_segmentation.c
${OPENAIR1_DIR}/PHY/CODING/ldpc_decoder.c
${OPENAIR1_DIR}/PHY/CODING/ldpc_encoder.c
${OPENAIR1_DIR}/PHY/CODING/ldpc_encoder2.c
${OPENAIR1_DIR}/PHY/CODING/ldpc_generate_coefficient.c
${OPENAIR1_DIR}/PHY/CODING/ccoding_byte.c
${OPENAIR1_DIR}/PHY/CODING/ccoding_byte_lte.c
${OPENAIR1_DIR}/PHY/CODING/3gpplte_sse.c
${OPENAIR1_DIR}/PHY/CODING/crc_byte.c
${OPENAIR1_DIR}/PHY/CODING/ldpc_decoder.c
${OPENAIR1_DIR}/PHY/CODING/ldpc_encoder.c
${OPENAIR1_DIR}/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c
${OPENAIR1_DIR}/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c
${OPENAIR1_DIR}/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c
......
......@@ -11,5 +11,6 @@ set(PBS_SIM False)
set(PERFECT_CE True)
set(NAS_UE False)
set(MESSAGE_CHART_GENERATOR False)
set(RRC_ASN1_VERSION "Rel14")
include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)
......@@ -62,7 +62,8 @@ char quantize(double D,double x,unsigned char B)
#define MAX_BLOCK_LENGTH 8448
int test_ldpc(short No_iteration,
double rate,
int nom_rate,
int denom_rate,
double SNR,
unsigned char qbits,
short block_length,
......@@ -71,7 +72,7 @@ int test_ldpc(short No_iteration,
unsigned int *crc_misses)
{
//clock initiate
time_stats_t time;
time_stats_t time,time_optim,tinput,tprep,tparity,toutput;
opp_enabled=1;
cpu_freq_GHz = get_cpu_freq_GHz();
//short test_input[block_length];
......@@ -79,6 +80,7 @@ int test_ldpc(short No_iteration,
//short *c; //padded codeword
short *esimated_output;
unsigned char *channel_input;
unsigned char *channel_input_optim;
double *channel_output;
double *modulated_input;
short *channel_output_fixed;
......@@ -93,11 +95,15 @@ int test_ldpc(short No_iteration,
// generate input block
test_input=(unsigned char *)malloc(sizeof(unsigned char) * block_length/8);
channel_input = (unsigned char *)malloc(sizeof(unsigned char) * 68*384);
channel_input_optim = (unsigned char *)malloc(sizeof(unsigned char) * 68*384);
modulated_input = (double *)malloc(sizeof(double) * 68*384);
channel_output = (double *)malloc(sizeof(double) * 68*384);
reset_meas(&time);
reset_meas(&time_optim);
reset_meas(&tinput);
reset_meas(&tprep);
reset_meas(&tparity);
reset_meas(&toutput);
for (i=0; i<block_length/8; i++)
{
//test_input[i]=(unsigned char) rand();
......@@ -130,6 +136,7 @@ int test_ldpc(short No_iteration,
//find minimum value in all sets of lifting size
Zc=0;
for (i1=0; i1 < 51; i1++)
{
if (lift_size[i1] >= (double) block_length/Kb)
......@@ -141,35 +148,47 @@ int test_ldpc(short No_iteration,
}
printf("BG %d, Zc %d, Kb %d\n",BG, Zc, Kb);
no_punctured_columns=(int)((nrows-2)*Zc+block_length-block_length/rate)/Zc;
//printf("%d\n",no_punctured_columns);
no_punctured_columns=(int)((nrows-2)*Zc+block_length-block_length*(1/((float)nom_rate/(float)denom_rate)))/Zc;
// printf("puncture:%d\n",no_punctured_columns);
removed_bit=(nrows-no_punctured_columns-2) * Zc+block_length-(int)(block_length/((float)nom_rate/(float)denom_rate));
if (ntrials==0)
ldpc_encoder_orig(test_input,channel_input, block_length, nom_rate, denom_rate, 1);
for (trial=0; trial < ntrials; trial++)
{
//// encoder
if (ntrials==1)
ldpc_encoder_orig(test_input, channel_input,block_length,rate,1);
else {
start_meas(&time);
if (BG==1)
ldpc_encoder(test_input, channel_input,block_length,rate);
ldpc_encoder(test_input, channel_input,block_length,nom_rate,denom_rate);
else
ldpc_encoder_orig(test_input, channel_input,block_length,rate,0);
ldpc_encoder_orig(test_input, channel_input,block_length,nom_rate,denom_rate,0);
stop_meas(&time);
start_meas(&time_optim);
if (BG==1) {
ldpc_encoder_optim(test_input, channel_input_optim,block_length,nom_rate,denom_rate,&tinput,&tprep,&tparity,&toutput);
}
//print_meas_now(&time, "", stdout);
stop_meas(&time_optim);
// for (i=0;i<8448;i++)
for (i = 0; i < block_length+(nrows-no_punctured_columns) * Zc - removed_bit; i++)
if (channel_input[i]!=channel_input_optim[i]) printf("differ in pos %d (%d,%d)\n",i,
channel_input[i],
channel_input_optim[i]);
//print_meas_now(&time, "", stdout);
//for (i=0;i<25344;i++)
//printf("channel_input[%d]=%d\n",i,channel_input[i]);
//printf("%d ",channel_input[i]);
if ((BG==2) && (Zc==128||Zc==256))
{
channel_output_fixed = (short *)malloc( (Kb+nrows) * Zc*sizeof(short));
memset(channel_output_fixed,0,(Kb+nrows) * Zc*sizeof(short));
removed_bit=(nrows-no_punctured_columns-2) * Zc+block_length-(int)(block_length/rate);
removed_bit=(nrows-no_punctured_columns-2) * Zc+block_length-(int)(block_length/((float)nom_rate/(float)denom_rate));
//printf("removed_bit:%d\n",removed_bit);
for (i = 2*Zc; i < (Kb+nrows-no_punctured_columns) * Zc-removed_bit; i++)
......@@ -201,7 +220,7 @@ int test_ldpc(short No_iteration,
#endif
// decode the sequence
// decoder supports BG2, Z=128 & 256
esimated_output=ldpc_decoder(channel_output_fixed, block_length, No_iteration, rate);
esimated_output=ldpc_decoder(channel_output_fixed, block_length, No_iteration, (double)((float)nom_rate/(float)denom_rate));
//for (i=(Kb+nrows) * Zc-5;i<(Kb+nrows) * Zc;i++)
// printf("esimated_output[%d]=%d\n",i,esimated_output[i]);
......@@ -218,31 +237,35 @@ int test_ldpc(short No_iteration,
free(channel_output_fixed);
}
else
if (trial==0)
else if (trial==0)
printf("decoder is not supported\n");
}
print_meas(&time,"ldpc_encoder",NULL,NULL);
print_meas(&time_optim,"ldpc_encoder_optim",NULL,NULL);
print_meas(&tinput,"ldpc_encoder_optim(input)",NULL,NULL);
print_meas(&tprep,"ldpc_encoder_optim(prep)",NULL,NULL);
print_meas(&tparity,"ldpc_encoder_optim(parity)",NULL,NULL);
print_meas(&toutput,"ldpc_encoder_optim(output)",NULL,NULL);
return *errors;
}
int main(int argc, char *argv[])
{
unsigned int errors,crc_misses;
short block_length=22*384; // decoder supports length: 1201 -> 1280, 2401 -> 2560
short No_iteration=25;
double rate=0.333;
//double rate=0.333;
int nom_rate=1;
int denom_rate=3;
double SNR,SNR_lin;
unsigned char qbits=4;
unsigned int decoded_errors[100]; // initiate the size of matrix equivalent to size of SNR
int c,i=0;
int n_trials = 100;
int n_trials = 1;
randominit(0);
while ((c = getopt (argc, argv, "q:r:l:n:")) != -1)
while ((c = getopt (argc, argv, "q:r:s:l:n:")) != -1)
switch (c)
{
case 'q':
......@@ -250,7 +273,11 @@ int main(int argc, char *argv[])
break;
case 'r':
rate = atof(optarg);
nom_rate = atoi(optarg);
break;
case 's':
denom_rate = atoi(optarg);
break;
case 'l':
......@@ -268,13 +295,14 @@ int main(int argc, char *argv[])
printf("the decoder supports BG2, Kb=10, Z=128 & 256\n");
printf(" range of blocklength: 1201 -> 1280, 2401 -> 2560\n");
printf("block length %d: \n", block_length);
printf("rate: %f\n",rate);
printf("rate: %d/%d\n",nom_rate,denom_rate);
for (SNR=-2.1; SNR<-2; SNR+=.1)
{
SNR_lin = pow(10,SNR/10);
decoded_errors[i]=test_ldpc(No_iteration,
rate,
nom_rate,
denom_rate,
SNR_lin, // noise standard deviation
qbits,
block_length, // block length bytes
......
......@@ -572,7 +572,10 @@ int16_t reverseBits(int32_t ,int32_t);
void phy_viterbi_dot11(int8_t *,uint8_t *,uint16_t);
short *ldpc_decoder(short *msgChannel,short block_length,short No_iteration,double rate);
int ldpc_encoder(unsigned char *test_input,unsigned char* channel_input,short block_length,double rate);
int ldpc_encoder_orig(unsigned char *test_input,unsigned char* channel_input,short block_length,double rate,unsigned char gen_code);
int encode_parity_check_part(uint16_t *c,uint16_t *d, short BG,short Zc,short Kb);
int ldpc_encoder(unsigned char *test_input,unsigned char *channel_input,short block_length,int nom_rate,int denom_rate);
int ldpc_encoder_orig(unsigned char *test_input,unsigned char *channel_input,short block_length,int nom_rate,int denom_rate,unsigned char gen_code);
int ldpc_encoder_multi_segment(unsigned char **test_input,unsigned char **channel_input,short block_length,double rate,uint8_t n_segments);
int ldpc_encoder_optim(unsigned char *test_input,unsigned char *channel_input,short block_length,int nom_rate,int denom_rate,time_stats_t *tinput,time_stats_t *tprep,time_stats_t *tparity,time_stats_t *toutput);
#endif
#include "PHY/sse_intrin.h"
// generated code for Zc=176, byte encoding
static inline void ldpc176_byte(uint8_t *c,uint8_t *d) {
__m128i *csimd=(__m128i *)c,*dsimd=(__m128i *)d;
__m128i *c2,*d2;
int i2;
for (i2=0; i2<11; i2++) {
c2=&csimd[i2];
d2=&dsimd[i2];
//row: 0
d2[0]=_mm_xor_si128(c2[2911],_mm_xor_si128(c2[6296],_mm_xor_si128(c2[971],_mm_xor_si128(c2[490],_mm_xor_si128(c2[2933],_mm_xor_si128(c2[1476],_mm_xor_si128(c2[6803],_mm_xor_si128(c2[3442],_mm_xor_si128(c2[531],_mm_xor_si128(c2[2466],_mm_xor_si128(c2[4915],_mm_xor_si128(c2[72],_mm_xor_si128(c2[553],_mm_xor_si128(c2[1066],_mm_xor_si128(c2[6871],_mm_xor_si128(c2[3482],_mm_xor_si128(c2[7371],_mm_xor_si128(c2[5923],_mm_xor_si128(c2[7376],_mm_xor_si128(c2[2562],_mm_xor_si128(c2[4493],_mm_xor_si128(c2[5464],_mm_xor_si128(c2[161],_mm_xor_si128(c2[162],_mm_xor_si128(c2[3068],_mm_xor_si128(c2[6959],_mm_xor_si128(c2[6471],_mm_xor_si128(c2[5505],_mm_xor_si128(c2[1654],_mm_xor_si128(c2[1169],_mm_xor_si128(c2[3109],_mm_xor_si128(c2[5064],_mm_xor_si128(c2[7487],_mm_xor_si128(c2[5066],_mm_xor_si128(c2[726],_mm_xor_si128(c2[3640],_mm_xor_si128(c2[3150],_mm_xor_si128(c2[1726],_mm_xor_si128(c2[6560],_mm_xor_si128(c2[4630],_mm_xor_si128(c2[4643],_mm_xor_si128(c2[7068],_mm_xor_si128(c2[6583],_mm_xor_si128(c2[7093],_mm_xor_si128(c2[7090],_mm_xor_si128(c2[4664],_mm_xor_si128(c2[2753],_mm_xor_si128(c2[1302],_mm_xor_si128(c2[6629],_mm_xor_si128(c2[5686],_mm_xor_si128(c2[841],_mm_xor_si128(c2[4712],_mm_xor_si128(c2[2802],_mm_xor_si128(c2[1834],_mm_xor_si128(c2[3764],_mm_xor_si128(c2[404],_mm_xor_si128(c2[1858],_mm_xor_si128(c2[7664],_mm_xor_si128(c2[3816],_mm_xor_si128(c2[4774],_mm_xor_si128(c2[1388],_mm_xor_si128(c2[7702],_mm_xor_si128(c2[3828],_mm_xor_si128(c2[4803],_mm_xor_si128(c2[6270],_mm_xor_si128(c2[7245],c2[4825]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 1
d2[11]=_mm_xor_si128(c2[2911],_mm_xor_si128(c2[3395],_mm_xor_si128(c2[6780],_mm_xor_si128(c2[1455],_mm_xor_si128(c2[974],_mm_xor_si128(c2[2933],_mm_xor_si128(c2[3417],_mm_xor_si128(c2[1960],_mm_xor_si128(c2[7287],_mm_xor_si128(c2[3442],_mm_xor_si128(c2[3926],_mm_xor_si128(c2[1015],_mm_xor_si128(c2[2950],_mm_xor_si128(c2[4915],_mm_xor_si128(c2[5399],_mm_xor_si128(c2[556],_mm_xor_si128(c2[1037],_mm_xor_si128(c2[1550],_mm_xor_si128(c2[7355],_mm_xor_si128(c2[3966],_mm_xor_si128(c2[7371],_mm_xor_si128(c2[112],_mm_xor_si128(c2[6407],_mm_xor_si128(c2[117],_mm_xor_si128(c2[2562],_mm_xor_si128(c2[3046],_mm_xor_si128(c2[4977],_mm_xor_si128(c2[5948],_mm_xor_si128(c2[645],_mm_xor_si128(c2[646],_mm_xor_si128(c2[3552],_mm_xor_si128(c2[7443],_mm_xor_si128(c2[6955],_mm_xor_si128(c2[5989],_mm_xor_si128(c2[1654],_mm_xor_si128(c2[2138],_mm_xor_si128(c2[1653],_mm_xor_si128(c2[3593],_mm_xor_si128(c2[5064],_mm_xor_si128(c2[5548],_mm_xor_si128(c2[228],_mm_xor_si128(c2[5550],_mm_xor_si128(c2[726],_mm_xor_si128(c2[1210],_mm_xor_si128(c2[4124],_mm_xor_si128(c2[3634],_mm_xor_si128(c2[1726],_mm_xor_si128(c2[2210],_mm_xor_si128(c2[7044],_mm_xor_si128(c2[5114],_mm_xor_si128(c2[4643],_mm_xor_si128(c2[5127],_mm_xor_si128(c2[7552],_mm_xor_si128(c2[7067],_mm_xor_si128(c2[7577],_mm_xor_si128(c2[7574],_mm_xor_si128(c2[5148],_mm_xor_si128(c2[2753],_mm_xor_si128(c2[3237],_mm_xor_si128(c2[1786],_mm_xor_si128(c2[7113],_mm_xor_si128(c2[5686],_mm_xor_si128(c2[6170],_mm_xor_si128(c2[1325],_mm_xor_si128(c2[5196],_mm_xor_si128(c2[3286],_mm_xor_si128(c2[2318],_mm_xor_si128(c2[4248],_mm_xor_si128(c2[404],_mm_xor_si128(c2[888],_mm_xor_si128(c2[2342],_mm_xor_si128(c2[405],_mm_xor_si128(c2[3816],_mm_xor_si128(c2[4300],_mm_xor_si128(c2[5258],_mm_xor_si128(c2[1872],_mm_xor_si128(c2[7702],_mm_xor_si128(c2[443],_mm_xor_si128(c2[4312],_mm_xor_si128(c2[5287],_mm_xor_si128(c2[6270],_mm_xor_si128(c2[6754],_mm_xor_si128(c2[7729],c2[5309])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 2
d2[22]=_mm_xor_si128(c2[3395],_mm_xor_si128(c2[6780],_mm_xor_si128(c2[971],_mm_xor_si128(c2[1455],_mm_xor_si128(c2[490],_mm_xor_si128(c2[974],_mm_xor_si128(c2[3417],_mm_xor_si128(c2[1476],_mm_xor_si128(c2[1960],_mm_xor_si128(c2[6803],_mm_xor_si128(c2[7287],_mm_xor_si128(c2[3926],_mm_xor_si128(c2[1015],_mm_xor_si128(c2[2466],_mm_xor_si128(c2[2950],_mm_xor_si128(c2[5399],_mm_xor_si128(c2[556],_mm_xor_si128(c2[553],_mm_xor_si128(c2[1037],_mm_xor_si128(c2[1550],_mm_xor_si128(c2[6871],_mm_xor_si128(c2[7355],_mm_xor_si128(c2[3482],_mm_xor_si128(c2[3966],_mm_xor_si128(c2[112],_mm_xor_si128(c2[6407],_mm_xor_si128(c2[7376],_mm_xor_si128(c2[117],_mm_xor_si128(c2[3046],_mm_xor_si128(c2[4493],_mm_xor_si128(c2[4977],_mm_xor_si128(c2[5464],_mm_xor_si128(c2[5948],_mm_xor_si128(c2[645],_mm_xor_si128(c2[162],_mm_xor_si128(c2[646],_mm_xor_si128(c2[3068],_mm_xor_si128(c2[3552],_mm_xor_si128(c2[7443],_mm_xor_si128(c2[6471],_mm_xor_si128(c2[6955],_mm_xor_si128(c2[5505],_mm_xor_si128(c2[5989],_mm_xor_si128(c2[2138],_mm_xor_si128(c2[1653],_mm_xor_si128(c2[3109],_mm_xor_si128(c2[3593],_mm_xor_si128(c2[5548],_mm_xor_si128(c2[7487],_mm_xor_si128(c2[228],_mm_xor_si128(c2[5066],_mm_xor_si128(c2[5550],_mm_xor_si128(c2[1210],_mm_xor_si128(c2[4124],_mm_xor_si128(c2[3150],_mm_xor_si128(c2[3634],_mm_xor_si128(c2[2210],_mm_xor_si128(c2[7044],_mm_xor_si128(c2[4630],_mm_xor_si128(c2[5114],_mm_xor_si128(c2[5127],_mm_xor_si128(c2[7068],_mm_xor_si128(c2[7552],_mm_xor_si128(c2[6583],_mm_xor_si128(c2[7067],_mm_xor_si128(c2[7577],_mm_xor_si128(c2[7090],_mm_xor_si128(c2[7574],_mm_xor_si128(c2[4664],_mm_xor_si128(c2[5148],_mm_xor_si128(c2[3237],_mm_xor_si128(c2[1786],_mm_xor_si128(c2[6629],_mm_xor_si128(c2[7113],_mm_xor_si128(c2[6170],_mm_xor_si128(c2[1325],_mm_xor_si128(c2[4712],_mm_xor_si128(c2[5196],_mm_xor_si128(c2[3286],_mm_xor_si128(c2[1834],_mm_xor_si128(c2[2318],_mm_xor_si128(c2[3764],_mm_xor_si128(c2[4248],_mm_xor_si128(c2[888],_mm_xor_si128(c2[1858],_mm_xor_si128(c2[2342],_mm_xor_si128(c2[7664],_mm_xor_si128(c2[405],_mm_xor_si128(c2[4300],_mm_xor_si128(c2[5258],_mm_xor_si128(c2[1388],_mm_xor_si128(c2[1872],_mm_xor_si128(c2[443],_mm_xor_si128(c2[3828],_mm_xor_si128(c2[4312],_mm_xor_si128(c2[4803],_mm_xor_si128(c2[5287],_mm_xor_si128(c2[6754],_mm_xor_si128(c2[7729],_mm_xor_si128(c2[4825],c2[5309]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 3
d2[33]=_mm_xor_si128(c2[3395],_mm_xor_si128(c2[6780],_mm_xor_si128(c2[1455],_mm_xor_si128(c2[490],_mm_xor_si128(c2[974],_mm_xor_si128(c2[3417],_mm_xor_si128(c2[1960],_mm_xor_si128(c2[6803],_mm_xor_si128(c2[7287],_mm_xor_si128(c2[3926],_mm_xor_si128(c2[1015],_mm_xor_si128(c2[2950],_mm_xor_si128(c2[5399],_mm_xor_si128(c2[556],_mm_xor_si128(c2[553],_mm_xor_si128(c2[1037],_mm_xor_si128(c2[1550],_mm_xor_si128(c2[7355],_mm_xor_si128(c2[3482],_mm_xor_si128(c2[3966],_mm_xor_si128(c2[112],_mm_xor_si128(c2[6407],_mm_xor_si128(c2[117],_mm_xor_si128(c2[3046],_mm_xor_si128(c2[4977],_mm_xor_si128(c2[5464],_mm_xor_si128(c2[5948],_mm_xor_si128(c2[645],_mm_xor_si128(c2[646],_mm_xor_si128(c2[3068],_mm_xor_si128(c2[3552],_mm_xor_si128(c2[7443],_mm_xor_si128(c2[6955],_mm_xor_si128(c2[5505],_mm_xor_si128(c2[5989],_mm_xor_si128(c2[2138],_mm_xor_si128(c2[1653],_mm_xor_si128(c2[3593],_mm_xor_si128(c2[5548],_mm_xor_si128(c2[228],_mm_xor_si128(c2[5066],_mm_xor_si128(c2[5550],_mm_xor_si128(c2[1210],_mm_xor_si128(c2[4124],_mm_xor_si128(c2[3150],_mm_xor_si128(c2[3634],_mm_xor_si128(c2[2210],_mm_xor_si128(c2[7044],_mm_xor_si128(c2[4630],_mm_xor_si128(c2[5114],_mm_xor_si128(c2[5127],_mm_xor_si128(c2[7552],_mm_xor_si128(c2[6583],_mm_xor_si128(c2[7067],_mm_xor_si128(c2[7577],_mm_xor_si128(c2[7574],_mm_xor_si128(c2[4664],_mm_xor_si128(c2[5148],_mm_xor_si128(c2[3237],_mm_xor_si128(c2[1786],_mm_xor_si128(c2[7113],_mm_xor_si128(c2[6170],_mm_xor_si128(c2[1325],_mm_xor_si128(c2[4712],_mm_xor_si128(c2[5196],_mm_xor_si128(c2[3286],_mm_xor_si128(c2[2318],_mm_xor_si128(c2[3764],_mm_xor_si128(c2[4248],_mm_xor_si128(c2[888],_mm_xor_si128(c2[2342],_mm_xor_si128(c2[7664],_mm_xor_si128(c2[405],_mm_xor_si128(c2[4300],_mm_xor_si128(c2[5258],_mm_xor_si128(c2[1872],_mm_xor_si128(c2[443],_mm_xor_si128(c2[4312],_mm_xor_si128(c2[4803],_mm_xor_si128(c2[5287],_mm_xor_si128(c2[6754],_mm_xor_si128(c2[7729],_mm_xor_si128(c2[4825],c2[5309])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 4
d2[44]=_mm_xor_si128(c2[4842],c2[27]);
//row: 5
d2[55]=_mm_xor_si128(c2[487],_mm_xor_si128(c2[3872],_mm_xor_si128(c2[6301],_mm_xor_si128(c2[5809],_mm_xor_si128(c2[5326],_mm_xor_si128(c2[509],_mm_xor_si128(c2[6806],_mm_xor_si128(c2[4379],_mm_xor_si128(c2[998],_mm_xor_si128(c2[1018],_mm_xor_si128(c2[5861],_mm_xor_si128(c2[53],_mm_xor_si128(c2[2491],_mm_xor_si128(c2[5391],_mm_xor_si128(c2[5883],_mm_xor_si128(c2[5394],_mm_xor_si128(c2[6385],_mm_xor_si128(c2[4447],_mm_xor_si128(c2[1058],_mm_xor_si128(c2[4958],_mm_xor_si128(c2[3499],_mm_xor_si128(c2[4952],_mm_xor_si128(c2[138],_mm_xor_si128(c2[2069],_mm_xor_si128(c2[3040],_mm_xor_si128(c2[5480],_mm_xor_si128(c2[5481],_mm_xor_si128(c2[644],_mm_xor_si128(c2[4535],_mm_xor_si128(c2[4058],_mm_xor_si128(c2[3081],_mm_xor_si128(c2[6984],_mm_xor_si128(c2[6499],_mm_xor_si128(c2[685],_mm_xor_si128(c2[2640],_mm_xor_si128(c2[5063],_mm_xor_si128(c2[2642],_mm_xor_si128(c2[6056],_mm_xor_si128(c2[1216],_mm_xor_si128(c2[726],_mm_xor_si128(c2[7045],_mm_xor_si128(c2[4136],_mm_xor_si128(c2[2206],_mm_xor_si128(c2[1241],_mm_xor_si128(c2[2230],_mm_xor_si128(c2[4644],_mm_xor_si128(c2[4159],_mm_xor_si128(c2[4669],_mm_xor_si128(c2[4666],_mm_xor_si128(c2[2251],_mm_xor_si128(c2[340],_mm_xor_si128(c2[6632],_mm_xor_si128(c2[4205],_mm_xor_si128(c2[3262],_mm_xor_si128(c2[6160],_mm_xor_si128(c2[2288],_mm_xor_si128(c2[3747],_mm_xor_si128(c2[378],_mm_xor_si128(c2[7153],_mm_xor_si128(c2[1351],_mm_xor_si128(c2[5723],_mm_xor_si128(c2[7177],_mm_xor_si128(c2[5240],_mm_xor_si128(c2[1392],_mm_xor_si128(c2[2361],_mm_xor_si128(c2[6718],_mm_xor_si128(c2[5289],_mm_xor_si128(c2[1415],_mm_xor_si128(c2[2379],_mm_xor_si128(c2[3857],_mm_xor_si128(c2[4821],_mm_xor_si128(c2[2401],c2[1435]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 6
d2[66]=_mm_xor_si128(c2[2911],_mm_xor_si128(c2[4492],_mm_xor_si128(c2[5069],_mm_xor_si128(c2[1700],_mm_xor_si128(c2[6104],_mm_xor_si128(c2[3287],_mm_xor_si128(c2[6210],c2[932])))))));
//row: 7
d2[77]=_mm_xor_si128(c2[1452],_mm_xor_si128(c2[3416],_mm_xor_si128(c2[91],_mm_xor_si128(c2[4517],_mm_xor_si128(c2[3566],c2[3698])))));
//row: 8
d2[88]=_mm_xor_si128(c2[5],_mm_xor_si128(c2[5324],_mm_xor_si128(c2[3390],_mm_xor_si128(c2[977],_mm_xor_si128(c2[5808],_mm_xor_si128(c2[2911],_mm_xor_si128(c2[3395],_mm_xor_si128(c2[5327],_mm_xor_si128(c2[2430],_mm_xor_si128(c2[2914],_mm_xor_si128(c2[5818],_mm_xor_si128(c2[27],_mm_xor_si128(c2[5346],_mm_xor_si128(c2[6324],_mm_xor_si128(c2[3416],_mm_xor_si128(c2[3900],_mm_xor_si128(c2[3897],_mm_xor_si128(c2[1000],_mm_xor_si128(c2[1484],_mm_xor_si128(c2[5350],_mm_xor_si128(c2[536],_mm_xor_si128(c2[5855],_mm_xor_si128(c2[5368],_mm_xor_si128(c2[2955],_mm_xor_si128(c2[7314],_mm_xor_si128(c2[4406],_mm_xor_si128(c2[4890],_mm_xor_si128(c2[2009],_mm_xor_si128(c2[7328],_mm_xor_si128(c2[4909],_mm_xor_si128(c2[2496],_mm_xor_si128(c2[5390],_mm_xor_si128(c2[2493],_mm_xor_si128(c2[2977],_mm_xor_si128(c2[2971],_mm_xor_si128(c2[5903],_mm_xor_si128(c2[3479],_mm_xor_si128(c2[3965],_mm_xor_si128(c2[1057],_mm_xor_si128(c2[1541],_mm_xor_si128(c2[576],_mm_xor_si128(c2[5422],_mm_xor_si128(c2[5906],_mm_xor_si128(c2[4476],_mm_xor_si128(c2[2052],_mm_xor_si128(c2[3017],_mm_xor_si128(c2[604],_mm_xor_si128(c2[4470],_mm_xor_si128(c2[1562],_mm_xor_si128(c2[2046],_mm_xor_si128(c2[7399],_mm_xor_si128(c2[4975],_mm_xor_si128(c2[1587],_mm_xor_si128(c2[6433],_mm_xor_si128(c2[6917],_mm_xor_si128(c2[2558],_mm_xor_si128(c2[7393],_mm_xor_si128(c2[134],_mm_xor_si128(c2[4998],_mm_xor_si128(c2[2574],_mm_xor_si128(c2[4999],_mm_xor_si128(c2[2091],_mm_xor_si128(c2[2575],_mm_xor_si128(c2[162],_mm_xor_si128(c2[4997],_mm_xor_si128(c2[5481],_mm_xor_si128(c2[4053],_mm_xor_si128(c2[1629],_mm_xor_si128(c2[3565],_mm_xor_si128(c2[668],_mm_xor_si128(c2[1152],_mm_xor_si128(c2[2599],_mm_xor_si128(c2[7445],_mm_xor_si128(c2[186],_mm_xor_si128(c2[6491],_mm_xor_si128(c2[4078],_mm_xor_si128(c2[6006],_mm_xor_si128(c2[3593],_mm_xor_si128(c2[203],_mm_xor_si128(c2[5038],_mm_xor_si128(c2[5522],_mm_xor_si128(c2[2158],_mm_xor_si128(c2[7488],_mm_xor_si128(c2[4581],_mm_xor_si128(c2[1673],_mm_xor_si128(c2[2157],_mm_xor_si128(c2[2160],_mm_xor_si128(c2[7006],_mm_xor_si128(c2[7490],_mm_xor_si128(c2[5574],_mm_xor_si128(c2[3150],_mm_xor_si128(c2[734],_mm_xor_si128(c2[6053],_mm_xor_si128(c2[244],_mm_xor_si128(c2[5090],_mm_xor_si128(c2[5574],_mm_xor_si128(c2[6563],_mm_xor_si128(c2[4139],_mm_xor_si128(c2[3654],_mm_xor_si128(c2[1241],_mm_xor_si128(c2[1724],_mm_xor_si128(c2[6559],_mm_xor_si128(c2[7043],_mm_xor_si128(c2[4144],_mm_xor_si128(c2[1748],_mm_xor_si128(c2[7067],_mm_xor_si128(c2[4162],_mm_xor_si128(c2[1254],_mm_xor_si128(c2[1738],_mm_xor_si128(c2[3677],_mm_xor_si128(c2[780],_mm_xor_si128(c2[1264],_mm_xor_si128(c2[4187],_mm_xor_si128(c2[1763],_mm_xor_si128(c2[4184],_mm_xor_si128(c2[1276],_mm_xor_si128(c2[1760],_mm_xor_si128(c2[1769],_mm_xor_si128(c2[6604],_mm_xor_si128(c2[7088],_mm_xor_si128(c2[7590],_mm_xor_si128(c2[5177],_mm_xor_si128(c2[6139],_mm_xor_si128(c2[3726],_mm_xor_si128(c2[3723],_mm_xor_si128(c2[815],_mm_xor_si128(c2[1299],_mm_xor_si128(c2[2780],_mm_xor_si128(c2[356],_mm_xor_si128(c2[5678],_mm_xor_si128(c2[3265],_mm_xor_si128(c2[1806],_mm_xor_si128(c2[6652],_mm_xor_si128(c2[7136],_mm_xor_si128(c2[355],_mm_xor_si128(c2[7639],_mm_xor_si128(c2[5215],_mm_xor_si128(c2[6671],_mm_xor_si128(c2[3763],_mm_xor_si128(c2[4247],_mm_xor_si128(c2[858],_mm_xor_si128(c2[5704],_mm_xor_si128(c2[6188],_mm_xor_si128(c2[5241],_mm_xor_si128(c2[2817],_mm_xor_si128(c2[6695],_mm_xor_si128(c2[3787],_mm_xor_si128(c2[4271],_mm_xor_si128(c2[4758],_mm_xor_si128(c2[1850],_mm_xor_si128(c2[2334],_mm_xor_si128(c2[910],_mm_xor_si128(c2[6229],_mm_xor_si128(c2[1879],_mm_xor_si128(c2[7198],_mm_xor_si128(c2[6236],_mm_xor_si128(c2[3328],_mm_xor_si128(c2[3812],_mm_xor_si128(c2[903],_mm_xor_si128(c2[4796],_mm_xor_si128(c2[2383],_mm_xor_si128(c2[933],_mm_xor_si128(c2[5768],_mm_xor_si128(c2[6252],_mm_xor_si128(c2[1897],_mm_xor_si128(c2[6732],_mm_xor_si128(c2[7216],_mm_xor_si128(c2[3375],_mm_xor_si128(c2[951],_mm_xor_si128(c2[4339],_mm_xor_si128(c2[1915],_mm_xor_si128(c2[1919],_mm_xor_si128(c2[6754],_mm_xor_si128(c2[7238],c2[5789]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 9
d2[99]=_mm_xor_si128(c2[5817],_mm_xor_si128(c2[3899],_mm_xor_si128(c2[2647],_mm_xor_si128(c2[7508],_mm_xor_si128(c2[6099],_mm_xor_si128(c2[4255],_mm_xor_si128(c2[3785],c2[934])))))));
//row: 10
d2[110]=_mm_xor_si128(c2[7292],_mm_xor_si128(c2[6340],_mm_xor_si128(c2[5413],_mm_xor_si128(c2[3545],_mm_xor_si128(c2[663],c2[5637])))));
//row: 11
d2[121]=_mm_xor_si128(c2[3878],_mm_xor_si128(c2[2912],_mm_xor_si128(c2[3396],_mm_xor_si128(c2[7263],_mm_xor_si128(c2[6781],_mm_xor_si128(c2[1938],_mm_xor_si128(c2[1456],_mm_xor_si128(c2[1457],_mm_xor_si128(c2[975],_mm_xor_si128(c2[4357],_mm_xor_si128(c2[3900],_mm_xor_si128(c2[2934],_mm_xor_si128(c2[3418],_mm_xor_si128(c2[2443],_mm_xor_si128(c2[1961],_mm_xor_si128(c2[27],_mm_xor_si128(c2[7288],_mm_xor_si128(c2[999],_mm_xor_si128(c2[4409],_mm_xor_si128(c2[3432],_mm_xor_si128(c2[3916],_mm_xor_si128(c2[1498],_mm_xor_si128(c2[1016],_mm_xor_si128(c2[3433],_mm_xor_si128(c2[2951],_mm_xor_si128(c2[5882],_mm_xor_si128(c2[4916],_mm_xor_si128(c2[5400],_mm_xor_si128(c2[1039],_mm_xor_si128(c2[557],_mm_xor_si128(c2[1520],_mm_xor_si128(c2[1038],_mm_xor_si128(c2[2033],_mm_xor_si128(c2[1540],_mm_xor_si128(c2[95],_mm_xor_si128(c2[7356],_mm_xor_si128(c2[4449],_mm_xor_si128(c2[3967],_mm_xor_si128(c2[595],_mm_xor_si128(c2[7372],_mm_xor_si128(c2[113],_mm_xor_si128(c2[6890],_mm_xor_si128(c2[6408],_mm_xor_si128(c2[600],_mm_xor_si128(c2[118],_mm_xor_si128(c2[3529],_mm_xor_si128(c2[2552],_mm_xor_si128(c2[3036],_mm_xor_si128(c2[5460],_mm_xor_si128(c2[4978],_mm_xor_si128(c2[6431],_mm_xor_si128(c2[5949],_mm_xor_si128(c2[1128],_mm_xor_si128(c2[646],_mm_xor_si128(c2[1129],_mm_xor_si128(c2[647],_mm_xor_si128(c2[4035],_mm_xor_si128(c2[3542],_mm_xor_si128(c2[183],_mm_xor_si128(c2[7444],_mm_xor_si128(c2[7438],_mm_xor_si128(c2[6956],_mm_xor_si128(c2[6472],_mm_xor_si128(c2[5990],_mm_xor_si128(c2[2621],_mm_xor_si128(c2[1655],_mm_xor_si128(c2[2139],_mm_xor_si128(c2[2136],_mm_xor_si128(c2[1654],_mm_xor_si128(c2[4076],_mm_xor_si128(c2[3594],_mm_xor_si128(c2[6031],_mm_xor_si128(c2[5065],_mm_xor_si128(c2[5549],_mm_xor_si128(c2[711],_mm_xor_si128(c2[229],_mm_xor_si128(c2[6033],_mm_xor_si128(c2[5551],_mm_xor_si128(c2[1704],_mm_xor_si128(c2[727],_mm_xor_si128(c2[1211],_mm_xor_si128(c2[4607],_mm_xor_si128(c2[4114],_mm_xor_si128(c2[4117],_mm_xor_si128(c2[3635],_mm_xor_si128(c2[2693],_mm_xor_si128(c2[1716],_mm_xor_si128(c2[2200],_mm_xor_si128(c2[7527],_mm_xor_si128(c2[7045],_mm_xor_si128(c2[5597],_mm_xor_si128(c2[5104],_mm_xor_si128(c2[4137],_mm_xor_si128(c2[5610],_mm_xor_si128(c2[4644],_mm_xor_si128(c2[5128],_mm_xor_si128(c2[292],_mm_xor_si128(c2[7553],_mm_xor_si128(c2[7550],_mm_xor_si128(c2[7068],_mm_xor_si128(c2[317],_mm_xor_si128(c2[7578],_mm_xor_si128(c2[314],_mm_xor_si128(c2[7575],_mm_xor_si128(c2[5642],_mm_xor_si128(c2[5149],_mm_xor_si128(c2[3720],_mm_xor_si128(c2[2754],_mm_xor_si128(c2[3238],_mm_xor_si128(c2[2269],_mm_xor_si128(c2[1787],_mm_xor_si128(c2[7596],_mm_xor_si128(c2[7114],_mm_xor_si128(c2[6653],_mm_xor_si128(c2[5676],_mm_xor_si128(c2[6160],_mm_xor_si128(c2[1808],_mm_xor_si128(c2[1326],_mm_xor_si128(c2[5679],_mm_xor_si128(c2[5197],_mm_xor_si128(c2[7622],_mm_xor_si128(c2[3769],_mm_xor_si128(c2[3287],_mm_xor_si128(c2[2801],_mm_xor_si128(c2[2319],_mm_xor_si128(c2[4731],_mm_xor_si128(c2[4249],_mm_xor_si128(c2[1371],_mm_xor_si128(c2[405],_mm_xor_si128(c2[889],_mm_xor_si128(c2[2825],_mm_xor_si128(c2[2332],_mm_xor_si128(c2[888],_mm_xor_si128(c2[406],_mm_xor_si128(c2[4783],_mm_xor_si128(c2[3806],_mm_xor_si128(c2[4290],_mm_xor_si128(c2[5752],_mm_xor_si128(c2[5259],_mm_xor_si128(c2[2355],_mm_xor_si128(c2[1873],_mm_xor_si128(c2[926],_mm_xor_si128(c2[7703],_mm_xor_si128(c2[444],_mm_xor_si128(c2[4806],_mm_xor_si128(c2[4313],_mm_xor_si128(c2[5770],_mm_xor_si128(c2[5288],_mm_xor_si128(c2[7248],_mm_xor_si128(c2[6271],_mm_xor_si128(c2[6755],_mm_xor_si128(c2[469],_mm_xor_si128(c2[7730],_mm_xor_si128(c2[5792],_mm_xor_si128(c2[5310],c2[3376])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 12
d2[132]=_mm_xor_si128(c2[5331],_mm_xor_si128(c2[4380],_mm_xor_si128(c2[7004],_mm_xor_si128(c2[7024],_mm_xor_si128(c2[286],c2[6208])))));
//row: 13
d2[143]=_mm_xor_si128(c2[3389],_mm_xor_si128(c2[3873],_mm_xor_si128(c2[7269],_mm_xor_si128(c2[1944],_mm_xor_si128(c2[1452],_mm_xor_si128(c2[3396],_mm_xor_si128(c2[3411],_mm_xor_si128(c2[3895],_mm_xor_si128(c2[2449],_mm_xor_si128(c2[22],_mm_xor_si128(c2[3920],_mm_xor_si128(c2[4404],_mm_xor_si128(c2[1504],_mm_xor_si128(c2[3439],_mm_xor_si128(c2[5393],_mm_xor_si128(c2[5877],_mm_xor_si128(c2[1034],_mm_xor_si128(c2[1526],_mm_xor_si128(c2[5394],_mm_xor_si128(c2[2028],_mm_xor_si128(c2[90],_mm_xor_si128(c2[4444],_mm_xor_si128(c2[117],_mm_xor_si128(c2[601],_mm_xor_si128(c2[6896],_mm_xor_si128(c2[595],_mm_xor_si128(c2[3040],_mm_xor_si128(c2[3524],_mm_xor_si128(c2[5466],_mm_xor_si128(c2[6426],_mm_xor_si128(c2[1123],_mm_xor_si128(c2[1124],_mm_xor_si128(c2[4030],_mm_xor_si128(c2[4515],_mm_xor_si128(c2[178],_mm_xor_si128(c2[7444],_mm_xor_si128(c2[6478],_mm_xor_si128(c2[2143],_mm_xor_si128(c2[2627],_mm_xor_si128(c2[2142],_mm_xor_si128(c2[4071],_mm_xor_si128(c2[5553],_mm_xor_si128(c2[6037],_mm_xor_si128(c2[706],_mm_xor_si128(c2[6028],_mm_xor_si128(c2[1215],_mm_xor_si128(c2[1699],_mm_xor_si128(c2[4602],_mm_xor_si128(c2[4123],_mm_xor_si128(c2[2204],_mm_xor_si128(c2[2688],_mm_xor_si128(c2[7533],_mm_xor_si128(c2[5592],_mm_xor_si128(c2[5132],_mm_xor_si128(c2[5616],_mm_xor_si128(c2[287],_mm_xor_si128(c2[7556],_mm_xor_si128(c2[312],_mm_xor_si128(c2[309],_mm_xor_si128(c2[5637],_mm_xor_si128(c2[3242],_mm_xor_si128(c2[3726],_mm_xor_si128(c2[2275],_mm_xor_si128(c2[7591],_mm_xor_si128(c2[6164],_mm_xor_si128(c2[6648],_mm_xor_si128(c2[1814],_mm_xor_si128(c2[5685],_mm_xor_si128(c2[3764],_mm_xor_si128(c2[2796],_mm_xor_si128(c2[4737],_mm_xor_si128(c2[882],_mm_xor_si128(c2[1366],_mm_xor_si128(c2[2820],_mm_xor_si128(c2[883],_mm_xor_si128(c2[4294],_mm_xor_si128(c2[4778],_mm_xor_si128(c2[5747],_mm_xor_si128(c2[2361],_mm_xor_si128(c2[448],_mm_xor_si128(c2[932],_mm_xor_si128(c2[4801],_mm_xor_si128(c2[5765],_mm_xor_si128(c2[7221],_mm_xor_si128(c2[6759],_mm_xor_si128(c2[7243],_mm_xor_si128(c2[464],c2[5787])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 14
d2[154]=_mm_xor_si128(c2[2905],_mm_xor_si128(c2[1241],_mm_xor_si128(c2[2756],_mm_xor_si128(c2[6169],_mm_xor_si128(c2[1346],c2[7242])))));
//row: 15
d2[165]=_mm_xor_si128(c2[3875],_mm_xor_si128(c2[7260],_mm_xor_si128(c2[1946],_mm_xor_si128(c2[970],_mm_xor_si128(c2[1454],_mm_xor_si128(c2[0],_mm_xor_si128(c2[3897],_mm_xor_si128(c2[2451],_mm_xor_si128(c2[7283],_mm_xor_si128(c2[24],_mm_xor_si128(c2[5840],_mm_xor_si128(c2[4406],_mm_xor_si128(c2[1506],_mm_xor_si128(c2[3441],_mm_xor_si128(c2[5879],_mm_xor_si128(c2[1036],_mm_xor_si128(c2[1044],_mm_xor_si128(c2[1528],_mm_xor_si128(c2[2030],_mm_xor_si128(c2[92],_mm_xor_si128(c2[3962],_mm_xor_si128(c2[4446],_mm_xor_si128(c2[603],_mm_xor_si128(c2[6887],_mm_xor_si128(c2[597],_mm_xor_si128(c2[3526],_mm_xor_si128(c2[5457],_mm_xor_si128(c2[5944],_mm_xor_si128(c2[6428],_mm_xor_si128(c2[1125],_mm_xor_si128(c2[1126],_mm_xor_si128(c2[3548],_mm_xor_si128(c2[4032],_mm_xor_si128(c2[180],_mm_xor_si128(c2[7446],_mm_xor_si128(c2[5985],_mm_xor_si128(c2[6469],_mm_xor_si128(c2[2618],_mm_xor_si128(c2[2144],_mm_xor_si128(c2[4073],_mm_xor_si128(c2[6028],_mm_xor_si128(c2[708],_mm_xor_si128(c2[5546],_mm_xor_si128(c2[6030],_mm_xor_si128(c2[7480],_mm_xor_si128(c2[1701],_mm_xor_si128(c2[4604],_mm_xor_si128(c2[3630],_mm_xor_si128(c2[4114],_mm_xor_si128(c2[2690],_mm_xor_si128(c2[7524],_mm_xor_si128(c2[5110],_mm_xor_si128(c2[5594],_mm_xor_si128(c2[5618],_mm_xor_si128(c2[289],_mm_xor_si128(c2[7063],_mm_xor_si128(c2[7547],_mm_xor_si128(c2[775],_mm_xor_si128(c2[314],_mm_xor_si128(c2[311],_mm_xor_si128(c2[5155],_mm_xor_si128(c2[5639],_mm_xor_si128(c2[3728],_mm_xor_si128(c2[2266],_mm_xor_si128(c2[7593],_mm_xor_si128(c2[6650],_mm_xor_si128(c2[1805],_mm_xor_si128(c2[5192],_mm_xor_si128(c2[5676],_mm_xor_si128(c2[3766],_mm_xor_si128(c2[2798],_mm_xor_si128(c2[4255],_mm_xor_si128(c2[4739],_mm_xor_si128(c2[1368],_mm_xor_si128(c2[2822],_mm_xor_si128(c2[401],_mm_xor_si128(c2[885],_mm_xor_si128(c2[396],_mm_xor_si128(c2[4780],_mm_xor_si128(c2[5749],_mm_xor_si128(c2[2363],_mm_xor_si128(c2[934],_mm_xor_si128(c2[4803],_mm_xor_si128(c2[5283],_mm_xor_si128(c2[5767],_mm_xor_si128(c2[7245],_mm_xor_si128(c2[466],_mm_xor_si128(c2[5305],c2[5789]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 16
d2[176]=_mm_xor_si128(c2[3875],_mm_xor_si128(c2[7260],_mm_xor_si128(c2[1946],_mm_xor_si128(c2[1454],_mm_xor_si128(c2[3897],_mm_xor_si128(c2[2451],_mm_xor_si128(c2[24],_mm_xor_si128(c2[6798],_mm_xor_si128(c2[4406],_mm_xor_si128(c2[1506],_mm_xor_si128(c2[3441],_mm_xor_si128(c2[5879],_mm_xor_si128(c2[1036],_mm_xor_si128(c2[1528],_mm_xor_si128(c2[2493],_mm_xor_si128(c2[2030],_mm_xor_si128(c2[92],_mm_xor_si128(c2[4446],_mm_xor_si128(c2[603],_mm_xor_si128(c2[6887],_mm_xor_si128(c2[597],_mm_xor_si128(c2[3526],_mm_xor_si128(c2[5457],_mm_xor_si128(c2[6428],_mm_xor_si128(c2[1125],_mm_xor_si128(c2[1126],_mm_xor_si128(c2[4032],_mm_xor_si128(c2[180],_mm_xor_si128(c2[7446],_mm_xor_si128(c2[6469],_mm_xor_si128(c2[2618],_mm_xor_si128(c2[2144],_mm_xor_si128(c2[4073],_mm_xor_si128(c2[6028],_mm_xor_si128(c2[708],_mm_xor_si128(c2[6030],_mm_xor_si128(c2[1701],_mm_xor_si128(c2[4604],_mm_xor_si128(c2[4114],_mm_xor_si128(c2[6059],_mm_xor_si128(c2[2690],_mm_xor_si128(c2[7524],_mm_xor_si128(c2[5594],_mm_xor_si128(c2[5618],_mm_xor_si128(c2[289],_mm_xor_si128(c2[7547],_mm_xor_si128(c2[314],_mm_xor_si128(c2[311],_mm_xor_si128(c2[5639],_mm_xor_si128(c2[3728],_mm_xor_si128(c2[2266],_mm_xor_si128(c2[7593],_mm_xor_si128(c2[6650],_mm_xor_si128(c2[1805],_mm_xor_si128(c2[5676],_mm_xor_si128(c2[3766],_mm_xor_si128(c2[2798],_mm_xor_si128(c2[4739],_mm_xor_si128(c2[1368],_mm_xor_si128(c2[2822],_mm_xor_si128(c2[885],_mm_xor_si128(c2[4780],_mm_xor_si128(c2[5749],_mm_xor_si128(c2[2363],_mm_xor_si128(c2[934],_mm_xor_si128(c2[4803],_mm_xor_si128(c2[5767],_mm_xor_si128(c2[5773],_mm_xor_si128(c2[7245],_mm_xor_si128(c2[466],c2[5789]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 17
d2[187]=_mm_xor_si128(c2[6782],_mm_xor_si128(c2[2247],_mm_xor_si128(c2[3744],_mm_xor_si128(c2[2317],c2[7238]))));
//row: 18
d2[198]=_mm_xor_si128(c2[7284],_mm_xor_si128(c2[7046],_mm_xor_si128(c2[3194],_mm_xor_si128(c2[2816],c2[4778]))));
//row: 19
d2[209]=_mm_xor_si128(c2[3393],_mm_xor_si128(c2[6804],_mm_xor_si128(c2[1615],_mm_xor_si128(c2[1149],c2[6029]))));
//row: 20
d2[220]=_mm_xor_si128(c2[1945],_mm_xor_si128(c2[5330],_mm_xor_si128(c2[5],_mm_xor_si128(c2[7267],_mm_xor_si128(c2[4361],_mm_xor_si128(c2[1967],_mm_xor_si128(c2[510],_mm_xor_si128(c2[5837],_mm_xor_si128(c2[2465],_mm_xor_si128(c2[7308],_mm_xor_si128(c2[1500],_mm_xor_si128(c2[3938],_mm_xor_si128(c2[6849],_mm_xor_si128(c2[7330],_mm_xor_si128(c2[554],_mm_xor_si128(c2[89],_mm_xor_si128(c2[5905],_mm_xor_si128(c2[2516],_mm_xor_si128(c2[6405],_mm_xor_si128(c2[4957],_mm_xor_si128(c2[6410],_mm_xor_si128(c2[1585],_mm_xor_si128(c2[3527],_mm_xor_si128(c2[4498],_mm_xor_si128(c2[6938],_mm_xor_si128(c2[6939],_mm_xor_si128(c2[2091],_mm_xor_si128(c2[5993],_mm_xor_si128(c2[5505],_mm_xor_si128(c2[4539],_mm_xor_si128(c2[688],_mm_xor_si128(c2[203],_mm_xor_si128(c2[2143],_mm_xor_si128(c2[5531],_mm_xor_si128(c2[4098],_mm_xor_si128(c2[6521],_mm_xor_si128(c2[4100],_mm_xor_si128(c2[7503],_mm_xor_si128(c2[2663],_mm_xor_si128(c2[2184],_mm_xor_si128(c2[2182],_mm_xor_si128(c2[749],_mm_xor_si128(c2[5594],_mm_xor_si128(c2[3653],_mm_xor_si128(c2[3677],_mm_xor_si128(c2[6102],_mm_xor_si128(c2[5617],_mm_xor_si128(c2[6116],_mm_xor_si128(c2[6124],_mm_xor_si128(c2[3698],_mm_xor_si128(c2[1787],_mm_xor_si128(c2[336],_mm_xor_si128(c2[5663],_mm_xor_si128(c2[4709],_mm_xor_si128(c2[7618],_mm_xor_si128(c2[3746],_mm_xor_si128(c2[1836],_mm_xor_si128(c2[868],_mm_xor_si128(c2[2798],_mm_xor_si128(c2[7181],_mm_xor_si128(c2[881],_mm_xor_si128(c2[6698],_mm_xor_si128(c2[2839],_mm_xor_si128(c2[3808],_mm_xor_si128(c2[422],_mm_xor_si128(c2[6736],_mm_xor_si128(c2[2862],_mm_xor_si128(c2[3837],_mm_xor_si128(c2[5304],_mm_xor_si128(c2[6279],c2[3859]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 21
d2[231]=_mm_xor_si128(c2[1000],_mm_xor_si128(c2[3987],_mm_xor_si128(c2[5202],_mm_xor_si128(c2[7708],c2[6760]))));
//row: 22
d2[242]=_mm_xor_si128(c2[3878],_mm_xor_si128(c2[6565],_mm_xor_si128(c2[6097],c2[865])));
//row: 23
d2[253]=_mm_xor_si128(c2[991],_mm_xor_si128(c2[2948],_mm_xor_si128(c2[2640],c2[404])));
//row: 24
d2[264]=_mm_xor_si128(c2[3880],_mm_xor_si128(c2[7265],_mm_xor_si128(c2[1940],_mm_xor_si128(c2[1459],_mm_xor_si128(c2[2906],_mm_xor_si128(c2[3902],_mm_xor_si128(c2[2445],_mm_xor_si128(c2[29],_mm_xor_si128(c2[4400],_mm_xor_si128(c2[1500],_mm_xor_si128(c2[3435],_mm_xor_si128(c2[5884],_mm_xor_si128(c2[1041],_mm_xor_si128(c2[1522],_mm_xor_si128(c2[4916],_mm_xor_si128(c2[2024],_mm_xor_si128(c2[97],_mm_xor_si128(c2[4451],_mm_xor_si128(c2[4448],_mm_xor_si128(c2[597],_mm_xor_si128(c2[6892],_mm_xor_si128(c2[602],_mm_xor_si128(c2[3520],_mm_xor_si128(c2[5462],_mm_xor_si128(c2[6433],_mm_xor_si128(c2[1130],_mm_xor_si128(c2[1131],_mm_xor_si128(c2[4026],_mm_xor_si128(c2[185],_mm_xor_si128(c2[7440],_mm_xor_si128(c2[6474],_mm_xor_si128(c2[2623],_mm_xor_si128(c2[2138],_mm_xor_si128(c2[4078],_mm_xor_si128(c2[6033],_mm_xor_si128(c2[713],_mm_xor_si128(c2[6035],_mm_xor_si128(c2[1695],_mm_xor_si128(c2[4598],_mm_xor_si128(c2[4119],_mm_xor_si128(c2[249],_mm_xor_si128(c2[2684],_mm_xor_si128(c2[7529],_mm_xor_si128(c2[5588],_mm_xor_si128(c2[5612],_mm_xor_si128(c2[294],_mm_xor_si128(c2[7552],_mm_xor_si128(c2[308],_mm_xor_si128(c2[316],_mm_xor_si128(c2[5633],_mm_xor_si128(c2[3722],_mm_xor_si128(c2[2271],_mm_xor_si128(c2[7598],_mm_xor_si128(c2[6644],_mm_xor_si128(c2[1810],_mm_xor_si128(c2[5681],_mm_xor_si128(c2[3771],_mm_xor_si128(c2[2803],_mm_xor_si128(c2[4733],_mm_xor_si128(c2[1373],_mm_xor_si128(c2[2816],_mm_xor_si128(c2[890],_mm_xor_si128(c2[4774],_mm_xor_si128(c2[5743],_mm_xor_si128(c2[2357],_mm_xor_si128(c2[928],_mm_xor_si128(c2[4797],_mm_xor_si128(c2[5772],_mm_xor_si128(c2[7239],_mm_xor_si128(c2[471],c2[5794]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 25
d2[275]=_mm_xor_si128(c2[3416],_mm_xor_si128(c2[7396],_mm_xor_si128(c2[7420],c2[3215])));
//row: 26
d2[286]=_mm_xor_si128(c2[2429],_mm_xor_si128(c2[2957],_mm_xor_si128(c2[1059],c2[1788])));
//row: 27
d2[297]=_mm_xor_si128(c2[5351],_mm_xor_si128(c2[3045],c2[5989]));
//row: 28
d2[308]=_mm_xor_si128(c2[2910],_mm_xor_si128(c2[572],_mm_xor_si128(c2[4292],c2[3860])));
//row: 29
d2[319]=_mm_xor_si128(c2[971],_mm_xor_si128(c2[4356],_mm_xor_si128(c2[6785],_mm_xor_si128(c2[5809],_mm_xor_si128(c2[6293],_mm_xor_si128(c2[993],_mm_xor_si128(c2[7290],_mm_xor_si128(c2[4379],_mm_xor_si128(c2[4863],_mm_xor_si128(c2[512],_mm_xor_si128(c2[1502],_mm_xor_si128(c2[6345],_mm_xor_si128(c2[537],_mm_xor_si128(c2[2975],_mm_xor_si128(c2[5875],_mm_xor_si128(c2[5883],_mm_xor_si128(c2[6367],_mm_xor_si128(c2[6869],_mm_xor_si128(c2[4931],_mm_xor_si128(c2[1058],_mm_xor_si128(c2[1542],_mm_xor_si128(c2[5442],_mm_xor_si128(c2[3983],_mm_xor_si128(c2[5436],_mm_xor_si128(c2[622],_mm_xor_si128(c2[2553],_mm_xor_si128(c2[3040],_mm_xor_si128(c2[3524],_mm_xor_si128(c2[5964],_mm_xor_si128(c2[5965],_mm_xor_si128(c2[644],_mm_xor_si128(c2[1128],_mm_xor_si128(c2[5019],_mm_xor_si128(c2[4542],_mm_xor_si128(c2[3081],_mm_xor_si128(c2[3565],_mm_xor_si128(c2[7468],_mm_xor_si128(c2[6983],_mm_xor_si128(c2[1169],_mm_xor_si128(c2[3124],_mm_xor_si128(c2[5547],_mm_xor_si128(c2[2642],_mm_xor_si128(c2[3126],_mm_xor_si128(c2[6540],_mm_xor_si128(c2[1700],_mm_xor_si128(c2[726],_mm_xor_si128(c2[1210],_mm_xor_si128(c2[7529],_mm_xor_si128(c2[4620],_mm_xor_si128(c2[2206],_mm_xor_si128(c2[2690],_mm_xor_si128(c2[2714],_mm_xor_si128(c2[5128],_mm_xor_si128(c2[4159],_mm_xor_si128(c2[4643],_mm_xor_si128(c2[5153],_mm_xor_si128(c2[5150],_mm_xor_si128(c2[2251],_mm_xor_si128(c2[2735],_mm_xor_si128(c2[4186],_mm_xor_si128(c2[824],_mm_xor_si128(c2[7116],_mm_xor_si128(c2[4689],_mm_xor_si128(c2[3746],_mm_xor_si128(c2[6644],_mm_xor_si128(c2[2288],_mm_xor_si128(c2[2772],_mm_xor_si128(c2[862],_mm_xor_si128(c2[7637],_mm_xor_si128(c2[1351],_mm_xor_si128(c2[1835],_mm_xor_si128(c2[6207],_mm_xor_si128(c2[7661],_mm_xor_si128(c2[5240],_mm_xor_si128(c2[5724],_mm_xor_si128(c2[1852],_mm_xor_si128(c2[1876],_mm_xor_si128(c2[2845],_mm_xor_si128(c2[7202],_mm_xor_si128(c2[5773],_mm_xor_si128(c2[1899],_mm_xor_si128(c2[2379],_mm_xor_si128(c2[2863],_mm_xor_si128(c2[4341],_mm_xor_si128(c2[5305],_mm_xor_si128(c2[2401],c2[2885]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 30
d2[330]=_mm_xor_si128(c2[5333],_mm_xor_si128(c2[975],_mm_xor_si128(c2[2909],_mm_xor_si128(c2[3393],_mm_xor_si128(c2[2428],_mm_xor_si128(c2[2912],_mm_xor_si128(c2[5334],_mm_xor_si128(c2[5355],_mm_xor_si128(c2[3414],_mm_xor_si128(c2[3898],_mm_xor_si128(c2[998],_mm_xor_si128(c2[1482],_mm_xor_si128(c2[5853],_mm_xor_si128(c2[2953],_mm_xor_si128(c2[4404],_mm_xor_si128(c2[4888],_mm_xor_si128(c2[7326],_mm_xor_si128(c2[2494],_mm_xor_si128(c2[2491],_mm_xor_si128(c2[2975],_mm_xor_si128(c2[3477],_mm_xor_si128(c2[1066],_mm_xor_si128(c2[1550],_mm_xor_si128(c2[5420],_mm_xor_si128(c2[5904],_mm_xor_si128(c2[2050],_mm_xor_si128(c2[602],_mm_xor_si128(c2[1571],_mm_xor_si128(c2[2055],_mm_xor_si128(c2[4973],_mm_xor_si128(c2[6431],_mm_xor_si128(c2[6915],_mm_xor_si128(c2[7402],_mm_xor_si128(c2[132],_mm_xor_si128(c2[2583],_mm_xor_si128(c2[2100],_mm_xor_si128(c2[2584],_mm_xor_si128(c2[4995],_mm_xor_si128(c2[5479],_mm_xor_si128(c2[1638],_mm_xor_si128(c2[666],_mm_xor_si128(c2[1150],_mm_xor_si128(c2[7443],_mm_xor_si128(c2[184],_mm_xor_si128(c2[4076],_mm_xor_si128(c2[3591],_mm_xor_si128(c2[5047],_mm_xor_si128(c2[5531],_mm_xor_si128(c2[7486],_mm_xor_si128(c2[1682],_mm_xor_si128(c2[2166],_mm_xor_si128(c2[7004],_mm_xor_si128(c2[7488],_mm_xor_si128(c2[221],_mm_xor_si128(c2[3148],_mm_xor_si128(c2[6051],_mm_xor_si128(c2[5088],_mm_xor_si128(c2[5572],_mm_xor_si128(c2[4137],_mm_xor_si128(c2[1239],_mm_xor_si128(c2[6557],_mm_xor_si128(c2[7041],_mm_xor_si128(c2[7065],_mm_xor_si128(c2[1263],_mm_xor_si128(c2[1747],_mm_xor_si128(c2[778],_mm_xor_si128(c2[1262],_mm_xor_si128(c2[7551],_mm_xor_si128(c2[1761],_mm_xor_si128(c2[1285],_mm_xor_si128(c2[1769],_mm_xor_si128(c2[6602],_mm_xor_si128(c2[7086],_mm_xor_si128(c2[5175],_mm_xor_si128(c2[3724],_mm_xor_si128(c2[824],_mm_xor_si128(c2[1308],_mm_xor_si128(c2[354],_mm_xor_si128(c2[3263],_mm_xor_si128(c2[6650],_mm_xor_si128(c2[7134],_mm_xor_si128(c2[5224],_mm_xor_si128(c2[3772],_mm_xor_si128(c2[4256],_mm_xor_si128(c2[5702],_mm_xor_si128(c2[6186],_mm_xor_si128(c2[2826],_mm_xor_si128(c2[3785],_mm_xor_si128(c2[4269],_mm_xor_si128(c2[1848],_mm_xor_si128(c2[2332],_mm_xor_si128(c2[6227],_mm_xor_si128(c2[7196],_mm_xor_si128(c2[3326],_mm_xor_si128(c2[3810],_mm_xor_si128(c2[2381],_mm_xor_si128(c2[5766],_mm_xor_si128(c2[6250],_mm_xor_si128(c2[6741],_mm_xor_si128(c2[7225],_mm_xor_si128(c2[949],_mm_xor_si128(c2[1924],_mm_xor_si128(c2[6763],c2[7247])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 31
d2[341]=_mm_xor_si128(c2[6294],_mm_xor_si128(c2[2430],_mm_xor_si128(c2[1936],_mm_xor_si128(c2[5815],_mm_xor_si128(c2[4365],_mm_xor_si128(c2[490],_mm_xor_si128(c2[3873],_mm_xor_si128(c2[7268],_mm_xor_si128(c2[9],_mm_xor_si128(c2[6316],_mm_xor_si128(c2[2452],_mm_xor_si128(c2[4870],_mm_xor_si128(c2[995],_mm_xor_si128(c2[2443],_mm_xor_si128(c2[5838],_mm_xor_si128(c2[6322],_mm_xor_si128(c2[2448],_mm_xor_si128(c2[6825],_mm_xor_si128(c2[2950],_mm_xor_si128(c2[3925],_mm_xor_si128(c2[50],_mm_xor_si128(c2[5860],_mm_xor_si128(c2[1985],_mm_xor_si128(c2[555],_mm_xor_si128(c2[4423],_mm_xor_si128(c2[3455],_mm_xor_si128(c2[7334],_mm_xor_si128(c2[3947],_mm_xor_si128(c2[7331],_mm_xor_si128(c2[72],_mm_xor_si128(c2[4449],_mm_xor_si128(c2[574],_mm_xor_si128(c2[2511],_mm_xor_si128(c2[6390],_mm_xor_si128(c2[6865],_mm_xor_si128(c2[2517],_mm_xor_si128(c2[3001],_mm_xor_si128(c2[3022],_mm_xor_si128(c2[6890],_mm_xor_si128(c2[1563],_mm_xor_si128(c2[5442],_mm_xor_si128(c2[3016],_mm_xor_si128(c2[6895],_mm_xor_si128(c2[5945],_mm_xor_si128(c2[2070],_mm_xor_si128(c2[133],_mm_xor_si128(c2[4012],_mm_xor_si128(c2[1104],_mm_xor_si128(c2[4488],_mm_xor_si128(c2[4972],_mm_xor_si128(c2[3544],_mm_xor_si128(c2[7423],_mm_xor_si128(c2[3545],_mm_xor_si128(c2[7424],_mm_xor_si128(c2[6451],_mm_xor_si128(c2[2092],_mm_xor_si128(c2[2576],_mm_xor_si128(c2[4517],_mm_xor_si128(c2[2599],_mm_xor_si128(c2[6478],_mm_xor_si128(c2[2122],_mm_xor_si128(c2[5990],_mm_xor_si128(c2[1145],_mm_xor_si128(c2[4540],_mm_xor_si128(c2[5024],_mm_xor_si128(c2[5048],_mm_xor_si128(c2[1173],_mm_xor_si128(c2[4563],_mm_xor_si128(c2[688],_mm_xor_si128(c2[6492],_mm_xor_si128(c2[2628],_mm_xor_si128(c2[704],_mm_xor_si128(c2[4583],_mm_xor_si128(c2[3127],_mm_xor_si128(c2[7006],_mm_xor_si128(c2[706],_mm_xor_si128(c2[4101],_mm_xor_si128(c2[4585],_mm_xor_si128(c2[4120],_mm_xor_si128(c2[245],_mm_xor_si128(c2[7023],_mm_xor_si128(c2[3148],_mm_xor_si128(c2[6544],_mm_xor_si128(c2[2185],_mm_xor_si128(c2[2669],_mm_xor_si128(c2[5109],_mm_xor_si128(c2[1234],_mm_xor_si128(c2[2200],_mm_xor_si128(c2[6079],_mm_xor_si128(c2[270],_mm_xor_si128(c2[3654],_mm_xor_si128(c2[4138],_mm_xor_si128(c2[294],_mm_xor_si128(c2[4162],_mm_xor_si128(c2[2708],_mm_xor_si128(c2[6587],_mm_xor_si128(c2[2223],_mm_xor_si128(c2[5618],_mm_xor_si128(c2[6102],_mm_xor_si128(c2[2733],_mm_xor_si128(c2[6601],_mm_xor_si128(c2[2730],_mm_xor_si128(c2[6609],_mm_xor_si128(c2[315],_mm_xor_si128(c2[3699],_mm_xor_si128(c2[4183],_mm_xor_si128(c2[6147],_mm_xor_si128(c2[2272],_mm_xor_si128(c2[4696],_mm_xor_si128(c2[821],_mm_xor_si128(c2[2269],_mm_xor_si128(c2[6148],_mm_xor_si128(c2[1326],_mm_xor_si128(c2[5194],_mm_xor_si128(c2[4224],_mm_xor_si128(c2[360],_mm_xor_si128(c2[352],_mm_xor_si128(c2[3747],_mm_xor_si128(c2[4231],_mm_xor_si128(c2[6185],_mm_xor_si128(c2[2310],_mm_xor_si128(c2[5217],_mm_xor_si128(c2[1342],_mm_xor_si128(c2[7158],_mm_xor_si128(c2[2799],_mm_xor_si128(c2[3283],_mm_xor_si128(c2[3787],_mm_xor_si128(c2[7666],_mm_xor_si128(c2[5241],_mm_xor_si128(c2[1366],_mm_xor_si128(c2[3304],_mm_xor_si128(c2[6688],_mm_xor_si128(c2[7172],_mm_xor_si128(c2[7199],_mm_xor_si128(c2[3324],_mm_xor_si128(c2[425],_mm_xor_si128(c2[4293],_mm_xor_si128(c2[4782],_mm_xor_si128(c2[907],_mm_xor_si128(c2[3353],_mm_xor_si128(c2[7221],_mm_xor_si128(c2[7222],_mm_xor_si128(c2[3347],_mm_xor_si128(c2[443],_mm_xor_si128(c2[3838],_mm_xor_si128(c2[4322],_mm_xor_si128(c2[1921],_mm_xor_si128(c2[5789],_mm_xor_si128(c2[2885],_mm_xor_si128(c2[6764],_mm_xor_si128(c2[465],_mm_xor_si128(c2[3860],c2[4344]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 32
d2[352]=_mm_xor_si128(c2[4841],_mm_xor_si128(c2[494],_mm_xor_si128(c2[2428],_mm_xor_si128(c2[2912],_mm_xor_si128(c2[1936],_mm_xor_si128(c2[2420],_mm_xor_si128(c2[7270],_mm_xor_si128(c2[4863],_mm_xor_si128(c2[2933],_mm_xor_si128(c2[3417],_mm_xor_si128(c2[506],_mm_xor_si128(c2[990],_mm_xor_si128(c2[5372],_mm_xor_si128(c2[2472],_mm_xor_si128(c2[3923],_mm_xor_si128(c2[4407],_mm_xor_si128(c2[6845],_mm_xor_si128(c2[2002],_mm_xor_si128(c2[2010],_mm_xor_si128(c2[2494],_mm_xor_si128(c2[2996],_mm_xor_si128(c2[574],_mm_xor_si128(c2[1058],_mm_xor_si128(c2[4928],_mm_xor_si128(c2[5412],_mm_xor_si128(c2[1569],_mm_xor_si128(c2[110],_mm_xor_si128(c2[1079],_mm_xor_si128(c2[1563],_mm_xor_si128(c2[4492],_mm_xor_si128(c2[5950],_mm_xor_si128(c2[6434],_mm_xor_si128(c2[6910],_mm_xor_si128(c2[7394],_mm_xor_si128(c2[2091],_mm_xor_si128(c2[1608],_mm_xor_si128(c2[2092],_mm_xor_si128(c2[4514],_mm_xor_si128(c2[4998],_mm_xor_si128(c2[1146],_mm_xor_si128(c2[185],_mm_xor_si128(c2[669],_mm_xor_si128(c2[6962],_mm_xor_si128(c2[7446],_mm_xor_si128(c2[3595],_mm_xor_si128(c2[3110],_mm_xor_si128(c2[4555],_mm_xor_si128(c2[5039],_mm_xor_si128(c2[7005],_mm_xor_si128(c2[1190],_mm_xor_si128(c2[1674],_mm_xor_si128(c2[6512],_mm_xor_si128(c2[6996],_mm_xor_si128(c2[2667],_mm_xor_si128(c2[5570],_mm_xor_si128(c2[4607],_mm_xor_si128(c2[5091],_mm_xor_si128(c2[3656],_mm_xor_si128(c2[758],_mm_xor_si128(c2[6076],_mm_xor_si128(c2[6560],_mm_xor_si128(c2[4625],_mm_xor_si128(c2[6584],_mm_xor_si128(c2[771],_mm_xor_si128(c2[1255],_mm_xor_si128(c2[286],_mm_xor_si128(c2[770],_mm_xor_si128(c2[1280],_mm_xor_si128(c2[793],_mm_xor_si128(c2[1277],_mm_xor_si128(c2[6121],_mm_xor_si128(c2[6605],_mm_xor_si128(c2[1286],_mm_xor_si128(c2[4694],_mm_xor_si128(c2[3243],_mm_xor_si128(c2[332],_mm_xor_si128(c2[816],_mm_xor_si128(c2[7616],_mm_xor_si128(c2[2782],_mm_xor_si128(c2[6169],_mm_xor_si128(c2[6653],_mm_xor_si128(c2[4732],_mm_xor_si128(c2[3280],_mm_xor_si128(c2[3764],_mm_xor_si128(c2[5221],_mm_xor_si128(c2[5705],_mm_xor_si128(c2[2334],_mm_xor_si128(c2[3304],_mm_xor_si128(c2[3788],_mm_xor_si128(c2[1367],_mm_xor_si128(c2[1851],_mm_xor_si128(c2[5746],_mm_xor_si128(c2[6715],_mm_xor_si128(c2[2845],_mm_xor_si128(c2[3329],_mm_xor_si128(c2[1900],_mm_xor_si128(c2[5285],_mm_xor_si128(c2[5769],_mm_xor_si128(c2[6249],_mm_xor_si128(c2[6733],_mm_xor_si128(c2[468],_mm_xor_si128(c2[1432],_mm_xor_si128(c2[6271],c2[6755])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 33
d2[363]=_mm_xor_si128(c2[3897],_mm_xor_si128(c2[52],_mm_xor_si128(c2[6542],c2[2888])));
//row: 34
d2[374]=_mm_xor_si128(c2[5811],_mm_xor_si128(c2[163],_mm_xor_si128(c2[337],c2[3281])));
//row: 35
d2[385]=_mm_xor_si128(c2[970],_mm_xor_si128(c2[4366],_mm_xor_si128(c2[6784],_mm_xor_si128(c2[6292],_mm_xor_si128(c2[992],_mm_xor_si128(c2[7289],_mm_xor_si128(c2[4862],_mm_xor_si128(c2[1964],_mm_xor_si128(c2[1501],_mm_xor_si128(c2[6344],_mm_xor_si128(c2[536],_mm_xor_si128(c2[2974],_mm_xor_si128(c2[5874],_mm_xor_si128(c2[6366],_mm_xor_si128(c2[6868],_mm_xor_si128(c2[4930],_mm_xor_si128(c2[1541],_mm_xor_si128(c2[5441],_mm_xor_si128(c2[3982],_mm_xor_si128(c2[5435],_mm_xor_si128(c2[621],_mm_xor_si128(c2[2552],_mm_xor_si128(c2[3523],_mm_xor_si128(c2[1102],_mm_xor_si128(c2[5963],_mm_xor_si128(c2[5964],_mm_xor_si128(c2[1127],_mm_xor_si128(c2[5018],_mm_xor_si128(c2[4541],_mm_xor_si128(c2[3564],_mm_xor_si128(c2[7467],_mm_xor_si128(c2[6982],_mm_xor_si128(c2[1168],_mm_xor_si128(c2[3134],_mm_xor_si128(c2[5546],_mm_xor_si128(c2[3125],_mm_xor_si128(c2[6539],_mm_xor_si128(c2[1699],_mm_xor_si128(c2[1220],_mm_xor_si128(c2[7528],_mm_xor_si128(c2[4630],_mm_xor_si128(c2[2689],_mm_xor_si128(c2[1717],_mm_xor_si128(c2[2713],_mm_xor_si128(c2[5127],_mm_xor_si128(c2[4642],_mm_xor_si128(c2[5152],_mm_xor_si128(c2[5149],_mm_xor_si128(c2[2734],_mm_xor_si128(c2[823],_mm_xor_si128(c2[7115],_mm_xor_si128(c2[4688],_mm_xor_si128(c2[3745],_mm_xor_si128(c2[6654],_mm_xor_si128(c2[2782],_mm_xor_si128(c2[861],_mm_xor_si128(c2[7636],_mm_xor_si128(c2[1834],_mm_xor_si128(c2[6206],_mm_xor_si128(c2[7660],_mm_xor_si128(c2[5723],_mm_xor_si128(c2[1875],_mm_xor_si128(c2[2844],_mm_xor_si128(c2[7201],_mm_xor_si128(c2[5772],_mm_xor_si128(c2[1898],_mm_xor_si128(c2[2862],_mm_xor_si128(c2[4340],_mm_xor_si128(c2[5304],c2[2884])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 36
d2[396]=_mm_xor_si128(c2[3396],_mm_xor_si128(c2[7568],_mm_xor_si128(c2[1784],c2[6204])));
//row: 37
d2[407]=_mm_xor_si128(c2[5325],_mm_xor_si128(c2[5809],_mm_xor_si128(c2[1462],_mm_xor_si128(c2[3880],_mm_xor_si128(c2[3388],_mm_xor_si128(c2[5347],_mm_xor_si128(c2[5831],_mm_xor_si128(c2[4385],_mm_xor_si128(c2[1958],_mm_xor_si128(c2[7290],_mm_xor_si128(c2[5856],_mm_xor_si128(c2[6340],_mm_xor_si128(c2[3440],_mm_xor_si128(c2[5375],_mm_xor_si128(c2[7329],_mm_xor_si128(c2[70],_mm_xor_si128(c2[2970],_mm_xor_si128(c2[3462],_mm_xor_si128(c2[3964],_mm_xor_si128(c2[2026],_mm_xor_si128(c2[6380],_mm_xor_si128(c2[2053],_mm_xor_si128(c2[2537],_mm_xor_si128(c2[1078],_mm_xor_si128(c2[2531],_mm_xor_si128(c2[4976],_mm_xor_si128(c2[5460],_mm_xor_si128(c2[7402],_mm_xor_si128(c2[619],_mm_xor_si128(c2[3059],_mm_xor_si128(c2[3060],_mm_xor_si128(c2[5966],_mm_xor_si128(c2[2114],_mm_xor_si128(c2[1637],_mm_xor_si128(c2[660],_mm_xor_si128(c2[4079],_mm_xor_si128(c2[4563],_mm_xor_si128(c2[4078],_mm_xor_si128(c2[6007],_mm_xor_si128(c2[7489],_mm_xor_si128(c2[230],_mm_xor_si128(c2[2642],_mm_xor_si128(c2[221],_mm_xor_si128(c2[3151],_mm_xor_si128(c2[3635],_mm_xor_si128(c2[6538],_mm_xor_si128(c2[6059],_mm_xor_si128(c2[4140],_mm_xor_si128(c2[4624],_mm_xor_si128(c2[1726],_mm_xor_si128(c2[7528],_mm_xor_si128(c2[7068],_mm_xor_si128(c2[7552],_mm_xor_si128(c2[2223],_mm_xor_si128(c2[1738],_mm_xor_si128(c2[6097],_mm_xor_si128(c2[2248],_mm_xor_si128(c2[2245],_mm_xor_si128(c2[7573],_mm_xor_si128(c2[5178],_mm_xor_si128(c2[5662],_mm_xor_si128(c2[4211],_mm_xor_si128(c2[1784],_mm_xor_si128(c2[357],_mm_xor_si128(c2[841],_mm_xor_si128(c2[3750],_mm_xor_si128(c2[7621],_mm_xor_si128(c2[5700],_mm_xor_si128(c2[4732],_mm_xor_si128(c2[6673],_mm_xor_si128(c2[2818],_mm_xor_si128(c2[3302],_mm_xor_si128(c2[4756],_mm_xor_si128(c2[2819],_mm_xor_si128(c2[6230],_mm_xor_si128(c2[6714],_mm_xor_si128(c2[7683],_mm_xor_si128(c2[4297],_mm_xor_si128(c2[2384],_mm_xor_si128(c2[2868],_mm_xor_si128(c2[6737],_mm_xor_si128(c2[7701],_mm_xor_si128(c2[952],_mm_xor_si128(c2[1436],_mm_xor_si128(c2[2400],c2[7723])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 38
d2[418]=_mm_xor_si128(c2[1946],_mm_xor_si128(c2[2135],_mm_xor_si128(c2[706],c2[3172])));
//row: 39
d2[429]=_mm_xor_si128(c2[5833],_mm_xor_si128(c2[3943],_mm_xor_si128(c2[2576],c2[424])));
//row: 40
d2[440]=_mm_xor_si128(c2[8],_mm_xor_si128(c2[6471],c2[3770]));
//row: 41
d2[451]=_mm_xor_si128(c2[5353],_mm_xor_si128(c2[6362],_mm_xor_si128(c2[4555],c2[402])));
//row: 42
d2[462]=_mm_xor_si128(c2[3880],_mm_xor_si128(c2[7265],_mm_xor_si128(c2[1456],_mm_xor_si128(c2[1940],_mm_xor_si128(c2[975],_mm_xor_si128(c2[1459],_mm_xor_si128(c2[7],_mm_xor_si128(c2[3902],_mm_xor_si128(c2[1961],_mm_xor_si128(c2[2445],_mm_xor_si128(c2[7288],_mm_xor_si128(c2[29],_mm_xor_si128(c2[4400],_mm_xor_si128(c2[1500],_mm_xor_si128(c2[2951],_mm_xor_si128(c2[3435],_mm_xor_si128(c2[5884],_mm_xor_si128(c2[1041],_mm_xor_si128(c2[1038],_mm_xor_si128(c2[1522],_mm_xor_si128(c2[2024],_mm_xor_si128(c2[7356],_mm_xor_si128(c2[97],_mm_xor_si128(c2[3967],_mm_xor_si128(c2[4451],_mm_xor_si128(c2[1545],_mm_xor_si128(c2[597],_mm_xor_si128(c2[6892],_mm_xor_si128(c2[118],_mm_xor_si128(c2[602],_mm_xor_si128(c2[3520],_mm_xor_si128(c2[4978],_mm_xor_si128(c2[5462],_mm_xor_si128(c2[5949],_mm_xor_si128(c2[6433],_mm_xor_si128(c2[1130],_mm_xor_si128(c2[647],_mm_xor_si128(c2[1131],_mm_xor_si128(c2[3542],_mm_xor_si128(c2[4026],_mm_xor_si128(c2[185],_mm_xor_si128(c2[6956],_mm_xor_si128(c2[7440],_mm_xor_si128(c2[5990],_mm_xor_si128(c2[6474],_mm_xor_si128(c2[2623],_mm_xor_si128(c2[2138],_mm_xor_si128(c2[3594],_mm_xor_si128(c2[4078],_mm_xor_si128(c2[6033],_mm_xor_si128(c2[229],_mm_xor_si128(c2[713],_mm_xor_si128(c2[5551],_mm_xor_si128(c2[6035],_mm_xor_si128(c2[1695],_mm_xor_si128(c2[4598],_mm_xor_si128(c2[3635],_mm_xor_si128(c2[4119],_mm_xor_si128(c2[2684],_mm_xor_si128(c2[7529],_mm_xor_si128(c2[5104],_mm_xor_si128(c2[5588],_mm_xor_si128(c2[5612],_mm_xor_si128(c2[7553],_mm_xor_si128(c2[294],_mm_xor_si128(c2[7068],_mm_xor_si128(c2[7552],_mm_xor_si128(c2[308],_mm_xor_si128(c2[7575],_mm_xor_si128(c2[316],_mm_xor_si128(c2[5149],_mm_xor_si128(c2[5633],_mm_xor_si128(c2[3722],_mm_xor_si128(c2[2271],_mm_xor_si128(c2[7114],_mm_xor_si128(c2[7598],_mm_xor_si128(c2[6644],_mm_xor_si128(c2[1810],_mm_xor_si128(c2[5197],_mm_xor_si128(c2[5681],_mm_xor_si128(c2[3771],_mm_xor_si128(c2[2319],_mm_xor_si128(c2[2803],_mm_xor_si128(c2[4249],_mm_xor_si128(c2[4733],_mm_xor_si128(c2[1373],_mm_xor_si128(c2[2332],_mm_xor_si128(c2[2816],_mm_xor_si128(c2[406],_mm_xor_si128(c2[890],_mm_xor_si128(c2[4774],_mm_xor_si128(c2[5743],_mm_xor_si128(c2[1873],_mm_xor_si128(c2[2357],_mm_xor_si128(c2[928],_mm_xor_si128(c2[4313],_mm_xor_si128(c2[4797],_mm_xor_si128(c2[5288],_mm_xor_si128(c2[5772],_mm_xor_si128(c2[7239],_mm_xor_si128(c2[471],_mm_xor_si128(c2[5310],c2[5794]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 43
d2[473]=_mm_xor_si128(c2[6782],_mm_xor_si128(c2[2424],_mm_xor_si128(c2[4842],_mm_xor_si128(c2[3877],_mm_xor_si128(c2[4361],_mm_xor_si128(c2[6804],_mm_xor_si128(c2[5347],_mm_xor_si128(c2[2447],_mm_xor_si128(c2[2931],_mm_xor_si128(c2[992],_mm_xor_si128(c2[7313],_mm_xor_si128(c2[4402],_mm_xor_si128(c2[6337],_mm_xor_si128(c2[1043],_mm_xor_si128(c2[3943],_mm_xor_si128(c2[3940],_mm_xor_si128(c2[4424],_mm_xor_si128(c2[4937],_mm_xor_si128(c2[2999],_mm_xor_si128(c2[6869],_mm_xor_si128(c2[7353],_mm_xor_si128(c2[3499],_mm_xor_si128(c2[2051],_mm_xor_si128(c2[3504],_mm_xor_si128(c2[6433],_mm_xor_si128(c2[621],_mm_xor_si128(c2[1108],_mm_xor_si128(c2[1592],_mm_xor_si128(c2[4032],_mm_xor_si128(c2[4033],_mm_xor_si128(c2[6455],_mm_xor_si128(c2[6939],_mm_xor_si128(c2[3087],_mm_xor_si128(c2[2599],_mm_xor_si128(c2[1149],_mm_xor_si128(c2[1633],_mm_xor_si128(c2[5525],_mm_xor_si128(c2[5040],_mm_xor_si128(c2[6980],_mm_xor_si128(c2[1192],_mm_xor_si128(c2[3615],_mm_xor_si128(c2[710],_mm_xor_si128(c2[1194],_mm_xor_si128(c2[4608],_mm_xor_si128(c2[7511],_mm_xor_si128(c2[6537],_mm_xor_si128(c2[7021],_mm_xor_si128(c2[5597],_mm_xor_si128(c2[2688],_mm_xor_si128(c2[274],_mm_xor_si128(c2[758],_mm_xor_si128(c2[771],_mm_xor_si128(c2[3196],_mm_xor_si128(c2[2227],_mm_xor_si128(c2[2711],_mm_xor_si128(c2[3221],_mm_xor_si128(c2[3218],_mm_xor_si128(c2[308],_mm_xor_si128(c2[792],_mm_xor_si128(c2[6624],_mm_xor_si128(c2[5173],_mm_xor_si128(c2[2757],_mm_xor_si128(c2[1814],_mm_xor_si128(c2[4712],_mm_xor_si128(c2[356],_mm_xor_si128(c2[840],_mm_xor_si128(c2[1804],_mm_xor_si128(c2[6673],_mm_xor_si128(c2[5705],_mm_xor_si128(c2[7151],_mm_xor_si128(c2[7635],_mm_xor_si128(c2[4275],_mm_xor_si128(c2[5729],_mm_xor_si128(c2[3308],_mm_xor_si128(c2[3792],_mm_xor_si128(c2[2819],_mm_xor_si128(c2[7687],_mm_xor_si128(c2[902],_mm_xor_si128(c2[5259],_mm_xor_si128(c2[3830],_mm_xor_si128(c2[7710],_mm_xor_si128(c2[447],_mm_xor_si128(c2[931],_mm_xor_si128(c2[2398],_mm_xor_si128(c2[3373],_mm_xor_si128(c2[469],c2[953]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 44
d2[484]=_mm_xor_si128(c2[2906],_mm_xor_si128(c2[6302],_mm_xor_si128(c2[977],_mm_xor_si128(c2[485],_mm_xor_si128(c2[7264],_mm_xor_si128(c2[2928],_mm_xor_si128(c2[1482],_mm_xor_si128(c2[6798],_mm_xor_si128(c2[3437],_mm_xor_si128(c2[537],_mm_xor_si128(c2[2472],_mm_xor_si128(c2[4910],_mm_xor_si128(c2[67],_mm_xor_si128(c2[559],_mm_xor_si128(c2[1061],_mm_xor_si128(c2[6866],_mm_xor_si128(c2[3477],_mm_xor_si128(c2[7377],_mm_xor_si128(c2[5918],_mm_xor_si128(c2[7371],_mm_xor_si128(c2[2557],_mm_xor_si128(c2[4488],_mm_xor_si128(c2[5459],_mm_xor_si128(c2[156],_mm_xor_si128(c2[157],_mm_xor_si128(c2[3063],_mm_xor_si128(c2[2094],_mm_xor_si128(c2[6954],_mm_xor_si128(c2[6477],_mm_xor_si128(c2[5500],_mm_xor_si128(c2[1660],_mm_xor_si128(c2[1175],_mm_xor_si128(c2[3104],_mm_xor_si128(c2[2625],_mm_xor_si128(c2[5070],_mm_xor_si128(c2[7482],_mm_xor_si128(c2[5061],_mm_xor_si128(c2[732],_mm_xor_si128(c2[3635],_mm_xor_si128(c2[3156],_mm_xor_si128(c2[1721],_mm_xor_si128(c2[6566],_mm_xor_si128(c2[4625],_mm_xor_si128(c2[4649],_mm_xor_si128(c2[7063],_mm_xor_si128(c2[6578],_mm_xor_si128(c2[7088],_mm_xor_si128(c2[7085],_mm_xor_si128(c2[4670],_mm_xor_si128(c2[2759],_mm_xor_si128(c2[1308],_mm_xor_si128(c2[6624],_mm_xor_si128(c2[5681],_mm_xor_si128(c2[836],_mm_xor_si128(c2[4718],_mm_xor_si128(c2[2797],_mm_xor_si128(c2[1829],_mm_xor_si128(c2[3770],_mm_xor_si128(c2[399],_mm_xor_si128(c2[1853],_mm_xor_si128(c2[7659],_mm_xor_si128(c2[3811],_mm_xor_si128(c2[4780],_mm_xor_si128(c2[1394],_mm_xor_si128(c2[7708],_mm_xor_si128(c2[3834],_mm_xor_si128(c2[4798],_mm_xor_si128(c2[6276],_mm_xor_si128(c2[7240],c2[4820])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 45
d2[495]=_mm_xor_si128(c2[995],_mm_xor_si128(c2[1588],c2[5547]));
}
}
#include "PHY/sse_intrin.h"
// generated code for Zc=192, byte encoding
static inline void ldpc192_byte(uint8_t *c,uint8_t *d) {
__m256i *csimd=(__m256i *)c,*dsimd=(__m256i *)d;
__m256i *c2,*d2;
int i2;
for (i2=0; i2<6; i2++) {
c2=&csimd[i2];
d2=&dsimd[i2];
//row: 0
d2[0]=_mm256_xor_si256(c2[5019],_mm256_xor_si256(c2[3170],_mm256_xor_si256(c2[3432],_mm256_xor_si256(c2[5282],_mm256_xor_si256(c2[5028],_mm256_xor_si256(c2[6877],_mm256_xor_si256(c2[6086],_mm256_xor_si256(c2[4777],_mm256_xor_si256(c2[3194],_mm256_xor_si256(c2[2140],_mm256_xor_si256(c2[4529],_mm256_xor_si256(c2[2414],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[51],_mm256_xor_si256(c2[3220],_mm256_xor_si256(c2[5066],_mm256_xor_si256(c2[5609],_mm256_xor_si256(c2[4288],_mm256_xor_si256(c2[62],_mm256_xor_si256(c2[6408],_mm256_xor_si256(c2[341],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[2992],_mm256_xor_si256(c2[2990],_mm256_xor_si256(c2[6688],_mm256_xor_si256(c2[3004],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[6433],_mm256_xor_si256(c2[7767],_mm256_xor_si256(c2[4865],_mm256_xor_si256(c2[8293],_mm256_xor_si256(c2[123],_mm256_xor_si256(c2[388],_mm256_xor_si256(c2[1180],_mm256_xor_si256(c2[3567],_mm256_xor_si256(c2[1983],_mm256_xor_si256(c2[4623],_mm256_xor_si256(c2[4632],_mm256_xor_si256(c2[5956],_mm256_xor_si256(c2[1993],_mm256_xor_si256(c2[1481],_mm256_xor_si256(c2[2268],_mm256_xor_si256(c2[5704],_mm256_xor_si256(c2[6768],_mm256_xor_si256(c2[6506],_mm256_xor_si256(c2[5448],_mm256_xor_si256(c2[6252],_mm256_xor_si256(c2[975],_mm256_xor_si256(c2[5725],_mm256_xor_si256(c2[2835],_mm256_xor_si256(c2[725],_mm256_xor_si256(c2[4419],_mm256_xor_si256(c2[4959],_mm256_xor_si256(c2[1000],_mm256_xor_si256(c2[3375],_mm256_xor_si256(c2[4969],_mm256_xor_si256(c2[4441],_mm256_xor_si256(c2[4178],_mm256_xor_si256(c2[5513],_mm256_xor_si256(c2[3136],_mm256_xor_si256(c2[3660],_mm256_xor_si256(c2[2884],_mm256_xor_si256(c2[3672],_mm256_xor_si256(c2[2089],_mm256_xor_si256(c2[7120],_mm256_xor_si256(c2[4479],c2[1577]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 1
d2[6]=_mm256_xor_si256(c2[5019],_mm256_xor_si256(c2[5283],_mm256_xor_si256(c2[3434],_mm256_xor_si256(c2[3696],_mm256_xor_si256(c2[5546],_mm256_xor_si256(c2[5028],_mm256_xor_si256(c2[5292],_mm256_xor_si256(c2[7141],_mm256_xor_si256(c2[6350],_mm256_xor_si256(c2[4777],_mm256_xor_si256(c2[5041],_mm256_xor_si256(c2[3458],_mm256_xor_si256(c2[2404],_mm256_xor_si256(c2[4529],_mm256_xor_si256(c2[4793],_mm256_xor_si256(c2[2678],_mm256_xor_si256(c2[300],_mm256_xor_si256(c2[315],_mm256_xor_si256(c2[3484],_mm256_xor_si256(c2[5330],_mm256_xor_si256(c2[5609],_mm256_xor_si256(c2[5873],_mm256_xor_si256(c2[4552],_mm256_xor_si256(c2[326],_mm256_xor_si256(c2[6408],_mm256_xor_si256(c2[6672],_mm256_xor_si256(c2[605],_mm256_xor_si256(c2[2184],_mm256_xor_si256(c2[3256],_mm256_xor_si256(c2[3254],_mm256_xor_si256(c2[6952],_mm256_xor_si256(c2[3268],_mm256_xor_si256(c2[365],_mm256_xor_si256(c2[6697],_mm256_xor_si256(c2[7767],_mm256_xor_si256(c2[8031],_mm256_xor_si256(c2[5129],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[123],_mm256_xor_si256(c2[387],_mm256_xor_si256(c2[652],_mm256_xor_si256(c2[1444],_mm256_xor_si256(c2[3567],_mm256_xor_si256(c2[3831],_mm256_xor_si256(c2[2247],_mm256_xor_si256(c2[4887],_mm256_xor_si256(c2[4632],_mm256_xor_si256(c2[4896],_mm256_xor_si256(c2[6220],_mm256_xor_si256(c2[2257],_mm256_xor_si256(c2[1481],_mm256_xor_si256(c2[1745],_mm256_xor_si256(c2[2532],_mm256_xor_si256(c2[5968],_mm256_xor_si256(c2[7032],_mm256_xor_si256(c2[6770],_mm256_xor_si256(c2[5712],_mm256_xor_si256(c2[6252],_mm256_xor_si256(c2[6516],_mm256_xor_si256(c2[1239],_mm256_xor_si256(c2[5989],_mm256_xor_si256(c2[2835],_mm256_xor_si256(c2[3099],_mm256_xor_si256(c2[989],_mm256_xor_si256(c2[4683],_mm256_xor_si256(c2[5223],_mm256_xor_si256(c2[1264],_mm256_xor_si256(c2[3639],_mm256_xor_si256(c2[4969],_mm256_xor_si256(c2[5233],_mm256_xor_si256(c2[4705],_mm256_xor_si256(c2[4442],_mm256_xor_si256(c2[5513],_mm256_xor_si256(c2[5777],_mm256_xor_si256(c2[3400],_mm256_xor_si256(c2[3924],_mm256_xor_si256(c2[2884],_mm256_xor_si256(c2[3148],_mm256_xor_si256(c2[3936],_mm256_xor_si256(c2[2353],_mm256_xor_si256(c2[7120],_mm256_xor_si256(c2[7384],_mm256_xor_si256(c2[4743],c2[1841])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 2
d2[12]=_mm256_xor_si256(c2[5283],_mm256_xor_si256(c2[3434],_mm256_xor_si256(c2[3432],_mm256_xor_si256(c2[3696],_mm256_xor_si256(c2[5282],_mm256_xor_si256(c2[5546],_mm256_xor_si256(c2[5292],_mm256_xor_si256(c2[6877],_mm256_xor_si256(c2[7141],_mm256_xor_si256(c2[6086],_mm256_xor_si256(c2[6350],_mm256_xor_si256(c2[5041],_mm256_xor_si256(c2[3458],_mm256_xor_si256(c2[2140],_mm256_xor_si256(c2[2404],_mm256_xor_si256(c2[4793],_mm256_xor_si256(c2[2678],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[300],_mm256_xor_si256(c2[315],_mm256_xor_si256(c2[3220],_mm256_xor_si256(c2[3484],_mm256_xor_si256(c2[5066],_mm256_xor_si256(c2[5330],_mm256_xor_si256(c2[5873],_mm256_xor_si256(c2[4552],_mm256_xor_si256(c2[62],_mm256_xor_si256(c2[326],_mm256_xor_si256(c2[6672],_mm256_xor_si256(c2[341],_mm256_xor_si256(c2[605],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[2184],_mm256_xor_si256(c2[3256],_mm256_xor_si256(c2[2990],_mm256_xor_si256(c2[3254],_mm256_xor_si256(c2[6688],_mm256_xor_si256(c2[6952],_mm256_xor_si256(c2[3268],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[365],_mm256_xor_si256(c2[6433],_mm256_xor_si256(c2[6697],_mm256_xor_si256(c2[8031],_mm256_xor_si256(c2[5129],_mm256_xor_si256(c2[8293],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[387],_mm256_xor_si256(c2[388],_mm256_xor_si256(c2[652],_mm256_xor_si256(c2[1180],_mm256_xor_si256(c2[1444],_mm256_xor_si256(c2[3831],_mm256_xor_si256(c2[2247],_mm256_xor_si256(c2[4623],_mm256_xor_si256(c2[4887],_mm256_xor_si256(c2[4896],_mm256_xor_si256(c2[6220],_mm256_xor_si256(c2[1993],_mm256_xor_si256(c2[2257],_mm256_xor_si256(c2[1745],_mm256_xor_si256(c2[2268],_mm256_xor_si256(c2[2532],_mm256_xor_si256(c2[5704],_mm256_xor_si256(c2[5968],_mm256_xor_si256(c2[7032],_mm256_xor_si256(c2[6506],_mm256_xor_si256(c2[6770],_mm256_xor_si256(c2[5448],_mm256_xor_si256(c2[5712],_mm256_xor_si256(c2[6516],_mm256_xor_si256(c2[1239],_mm256_xor_si256(c2[5725],_mm256_xor_si256(c2[5989],_mm256_xor_si256(c2[3099],_mm256_xor_si256(c2[989],_mm256_xor_si256(c2[4419],_mm256_xor_si256(c2[4683],_mm256_xor_si256(c2[5223],_mm256_xor_si256(c2[1000],_mm256_xor_si256(c2[1264],_mm256_xor_si256(c2[3375],_mm256_xor_si256(c2[3639],_mm256_xor_si256(c2[5233],_mm256_xor_si256(c2[4441],_mm256_xor_si256(c2[4705],_mm256_xor_si256(c2[4178],_mm256_xor_si256(c2[4442],_mm256_xor_si256(c2[5777],_mm256_xor_si256(c2[3400],_mm256_xor_si256(c2[3660],_mm256_xor_si256(c2[3924],_mm256_xor_si256(c2[3148],_mm256_xor_si256(c2[3672],_mm256_xor_si256(c2[3936],_mm256_xor_si256(c2[2089],_mm256_xor_si256(c2[2353],_mm256_xor_si256(c2[7384],_mm256_xor_si256(c2[4743],_mm256_xor_si256(c2[1577],c2[1841]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 3
d2[18]=_mm256_xor_si256(c2[5283],_mm256_xor_si256(c2[3434],_mm256_xor_si256(c2[3696],_mm256_xor_si256(c2[5282],_mm256_xor_si256(c2[5546],_mm256_xor_si256(c2[5292],_mm256_xor_si256(c2[7141],_mm256_xor_si256(c2[6086],_mm256_xor_si256(c2[6350],_mm256_xor_si256(c2[5041],_mm256_xor_si256(c2[3458],_mm256_xor_si256(c2[2404],_mm256_xor_si256(c2[4793],_mm256_xor_si256(c2[2678],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[300],_mm256_xor_si256(c2[315],_mm256_xor_si256(c2[3484],_mm256_xor_si256(c2[5066],_mm256_xor_si256(c2[5330],_mm256_xor_si256(c2[5873],_mm256_xor_si256(c2[4552],_mm256_xor_si256(c2[326],_mm256_xor_si256(c2[6672],_mm256_xor_si256(c2[605],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[2184],_mm256_xor_si256(c2[3256],_mm256_xor_si256(c2[3254],_mm256_xor_si256(c2[6688],_mm256_xor_si256(c2[6952],_mm256_xor_si256(c2[3268],_mm256_xor_si256(c2[365],_mm256_xor_si256(c2[6433],_mm256_xor_si256(c2[6697],_mm256_xor_si256(c2[8031],_mm256_xor_si256(c2[5129],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[387],_mm256_xor_si256(c2[652],_mm256_xor_si256(c2[1180],_mm256_xor_si256(c2[1444],_mm256_xor_si256(c2[3831],_mm256_xor_si256(c2[2247],_mm256_xor_si256(c2[4623],_mm256_xor_si256(c2[4887],_mm256_xor_si256(c2[4896],_mm256_xor_si256(c2[6220],_mm256_xor_si256(c2[1993],_mm256_xor_si256(c2[2257],_mm256_xor_si256(c2[1745],_mm256_xor_si256(c2[2532],_mm256_xor_si256(c2[5704],_mm256_xor_si256(c2[5968],_mm256_xor_si256(c2[7032],_mm256_xor_si256(c2[6770],_mm256_xor_si256(c2[5448],_mm256_xor_si256(c2[5712],_mm256_xor_si256(c2[6516],_mm256_xor_si256(c2[1239],_mm256_xor_si256(c2[5989],_mm256_xor_si256(c2[3099],_mm256_xor_si256(c2[989],_mm256_xor_si256(c2[4419],_mm256_xor_si256(c2[4683],_mm256_xor_si256(c2[5223],_mm256_xor_si256(c2[1264],_mm256_xor_si256(c2[3375],_mm256_xor_si256(c2[3639],_mm256_xor_si256(c2[5233],_mm256_xor_si256(c2[4705],_mm256_xor_si256(c2[4178],_mm256_xor_si256(c2[4442],_mm256_xor_si256(c2[5777],_mm256_xor_si256(c2[3400],_mm256_xor_si256(c2[3924],_mm256_xor_si256(c2[3148],_mm256_xor_si256(c2[3936],_mm256_xor_si256(c2[2089],_mm256_xor_si256(c2[2353],_mm256_xor_si256(c2[7384],_mm256_xor_si256(c2[4743],_mm256_xor_si256(c2[1577],c2[1841])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 4
d2[24]=_mm256_xor_si256(c2[3172],c2[5561]);
//row: 5
d2[30]=_mm256_xor_si256(c2[4226],_mm256_xor_si256(c2[2377],_mm256_xor_si256(c2[2645],_mm256_xor_si256(c2[4489],_mm256_xor_si256(c2[792],_mm256_xor_si256(c2[4241],_mm256_xor_si256(c2[6084],_mm256_xor_si256(c2[5293],_mm256_xor_si256(c2[3708],_mm256_xor_si256(c2[3984],_mm256_xor_si256(c2[2401],_mm256_xor_si256(c2[1347],_mm256_xor_si256(c2[3736],_mm256_xor_si256(c2[1621],_mm256_xor_si256(c2[7696],_mm256_xor_si256(c2[5055],_mm256_xor_si256(c2[7705],_mm256_xor_si256(c2[2427],_mm256_xor_si256(c2[4273],_mm256_xor_si256(c2[4816],_mm256_xor_si256(c2[3495],_mm256_xor_si256(c2[7716],_mm256_xor_si256(c2[5621],_mm256_xor_si256(c2[7995],_mm256_xor_si256(c2[1133],_mm256_xor_si256(c2[2199],_mm256_xor_si256(c2[2197],_mm256_xor_si256(c2[5895],_mm256_xor_si256(c2[2211],_mm256_xor_si256(c2[7755],_mm256_xor_si256(c2[5640],_mm256_xor_si256(c2[6974],_mm256_xor_si256(c2[4072],_mm256_xor_si256(c2[7500],_mm256_xor_si256(c2[7777],_mm256_xor_si256(c2[8042],_mm256_xor_si256(c2[387],_mm256_xor_si256(c2[2774],_mm256_xor_si256(c2[1190],_mm256_xor_si256(c2[3830],_mm256_xor_si256(c2[3845],_mm256_xor_si256(c2[5163],_mm256_xor_si256(c2[1200],_mm256_xor_si256(c2[1733],_mm256_xor_si256(c2[688],_mm256_xor_si256(c2[1481],_mm256_xor_si256(c2[4911],_mm256_xor_si256(c2[5981],_mm256_xor_si256(c2[5713],_mm256_xor_si256(c2[4661],_mm256_xor_si256(c2[5465],_mm256_xor_si256(c2[182],_mm256_xor_si256(c2[4932],_mm256_xor_si256(c2[2042],_mm256_xor_si256(c2[8379],_mm256_xor_si256(c2[3626],_mm256_xor_si256(c2[4681],_mm256_xor_si256(c2[4166],_mm256_xor_si256(c2[207],_mm256_xor_si256(c2[2582],_mm256_xor_si256(c2[4176],_mm256_xor_si256(c2[3648],_mm256_xor_si256(c2[3385],_mm256_xor_si256(c2[4720],_mm256_xor_si256(c2[2343],_mm256_xor_si256(c2[2873],_mm256_xor_si256(c2[2091],_mm256_xor_si256(c2[2885],_mm256_xor_si256(c2[1296],_mm256_xor_si256(c2[6327],_mm256_xor_si256(c2[3686],_mm256_xor_si256(c2[784],c2[5269]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 6
d2[36]=_mm256_xor_si256(c2[5810],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[8320],_mm256_xor_si256(c2[7550],_mm256_xor_si256(c2[7861],_mm256_xor_si256(c2[4968],c2[505])))))));
//row: 7
d2[42]=_mm256_xor_si256(c2[2376],_mm256_xor_si256(c2[7933],_mm256_xor_si256(c2[7443],_mm256_xor_si256(c2[3520],_mm256_xor_si256(c2[627],c2[4923])))));
//row: 8
d2[48]=_mm256_xor_si256(c2[5813],_mm256_xor_si256(c2[7922],_mm256_xor_si256(c2[3964],_mm256_xor_si256(c2[6073],_mm256_xor_si256(c2[4226],_mm256_xor_si256(c2[6077],_mm256_xor_si256(c2[6341],_mm256_xor_si256(c2[6076],_mm256_xor_si256(c2[7921],_mm256_xor_si256(c2[8185],_mm256_xor_si256(c2[5019],_mm256_xor_si256(c2[5822],_mm256_xor_si256(c2[7937],_mm256_xor_si256(c2[7671],_mm256_xor_si256(c2[1069],_mm256_xor_si256(c2[1333],_mm256_xor_si256(c2[6880],_mm256_xor_si256(c2[278],_mm256_xor_si256(c2[542],_mm256_xor_si256(c2[5033],_mm256_xor_si256(c2[5571],_mm256_xor_si256(c2[7680],_mm256_xor_si256(c2[3988],_mm256_xor_si256(c2[6097],_mm256_xor_si256(c2[2928],_mm256_xor_si256(c2[4779],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[5317],_mm256_xor_si256(c2[7432],_mm256_xor_si256(c2[3208],_mm256_xor_si256(c2[5317],_mm256_xor_si256(c2[830],_mm256_xor_si256(c2[2681],_mm256_xor_si256(c2[2945],_mm256_xor_si256(c2[1361],_mm256_xor_si256(c2[845],_mm256_xor_si256(c2[2954],_mm256_xor_si256(c2[4008],_mm256_xor_si256(c2[5859],_mm256_xor_si256(c2[6123],_mm256_xor_si256(c2[5860],_mm256_xor_si256(c2[7705],_mm256_xor_si256(c2[7969],_mm256_xor_si256(c2[6397],_mm256_xor_si256(c2[65],_mm256_xor_si256(c2[5076],_mm256_xor_si256(c2[7191],_mm256_xor_si256(c2[856],_mm256_xor_si256(c2[2701],_mm256_xor_si256(c2[2965],_mm256_xor_si256(c2[7202],_mm256_xor_si256(c2[864],_mm256_xor_si256(c2[1129],_mm256_xor_si256(c2[2980],_mm256_xor_si256(c2[3244],_mm256_xor_si256(c2[2714],_mm256_xor_si256(c2[4565],_mm256_xor_si256(c2[4829],_mm256_xor_si256(c2[3780],_mm256_xor_si256(c2[5895],_mm256_xor_si256(c2[3784],_mm256_xor_si256(c2[5629],_mm256_xor_si256(c2[5893],_mm256_xor_si256(c2[7476],_mm256_xor_si256(c2[880],_mm256_xor_si256(c2[1144],_mm256_xor_si256(c2[3792],_mm256_xor_si256(c2[5907],_mm256_xor_si256(c2[889],_mm256_xor_si256(c2[2740],_mm256_xor_si256(c2[3004],_mm256_xor_si256(c2[7227],_mm256_xor_si256(c2[625],_mm256_xor_si256(c2[889],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[2223],_mm256_xor_si256(c2[5653],_mm256_xor_si256(c2[7768],_mm256_xor_si256(c2[640],_mm256_xor_si256(c2[2485],_mm256_xor_si256(c2[2749],_mm256_xor_si256(c2[917],_mm256_xor_si256(c2[3026],_mm256_xor_si256(c2[1176],_mm256_xor_si256(c2[3027],_mm256_xor_si256(c2[3291],_mm256_xor_si256(c2[1968],_mm256_xor_si256(c2[3819],_mm256_xor_si256(c2[4083],_mm256_xor_si256(c2[4361],_mm256_xor_si256(c2[6470],_mm256_xor_si256(c2[2777],_mm256_xor_si256(c2[4886],_mm256_xor_si256(c2[5417],_mm256_xor_si256(c2[7262],_mm256_xor_si256(c2[7526],_mm256_xor_si256(c2[5426],_mm256_xor_si256(c2[7541],_mm256_xor_si256(c2[6744],_mm256_xor_si256(c2[412],_mm256_xor_si256(c2[2787],_mm256_xor_si256(c2[4632],_mm256_xor_si256(c2[4896],_mm256_xor_si256(c2[4896],_mm256_xor_si256(c2[2269],_mm256_xor_si256(c2[4384],_mm256_xor_si256(c2[3062],_mm256_xor_si256(c2[4913],_mm256_xor_si256(c2[5177],_mm256_xor_si256(c2[6492],_mm256_xor_si256(c2[8343],_mm256_xor_si256(c2[160],_mm256_xor_si256(c2[7562],_mm256_xor_si256(c2[1224],_mm256_xor_si256(c2[7300],_mm256_xor_si256(c2[698],_mm256_xor_si256(c2[962],_mm256_xor_si256(c2[6242],_mm256_xor_si256(c2[8093],_mm256_xor_si256(c2[8357],_mm256_xor_si256(c2[7046],_mm256_xor_si256(c2[708],_mm256_xor_si256(c2[1769],_mm256_xor_si256(c2[3878],_mm256_xor_si256(c2[6519],_mm256_xor_si256(c2[8364],_mm256_xor_si256(c2[181],_mm256_xor_si256(c2[3629],_mm256_xor_si256(c2[5738],_mm256_xor_si256(c2[1513],_mm256_xor_si256(c2[3628],_mm256_xor_si256(c2[5213],_mm256_xor_si256(c2[7058],_mm256_xor_si256(c2[7322],_mm256_xor_si256(c2[2041],_mm256_xor_si256(c2[5753],_mm256_xor_si256(c2[7862],_mm256_xor_si256(c2[1788],_mm256_xor_si256(c2[3639],_mm256_xor_si256(c2[3903],_mm256_xor_si256(c2[4169],_mm256_xor_si256(c2[6014],_mm256_xor_si256(c2[6278],_mm256_xor_si256(c2[5763],_mm256_xor_si256(c2[7872],_mm256_xor_si256(c2[5235],_mm256_xor_si256(c2[7080],_mm256_xor_si256(c2[7344],_mm256_xor_si256(c2[4972],_mm256_xor_si256(c2[6817],_mm256_xor_si256(c2[7081],_mm256_xor_si256(c2[6301],_mm256_xor_si256(c2[8416],_mm256_xor_si256(c2[3924],_mm256_xor_si256(c2[6039],_mm256_xor_si256(c2[4454],_mm256_xor_si256(c2[6305],_mm256_xor_si256(c2[6569],_mm256_xor_si256(c2[229],_mm256_xor_si256(c2[3672],_mm256_xor_si256(c2[5787],_mm256_xor_si256(c2[4466],_mm256_xor_si256(c2[6317],_mm256_xor_si256(c2[6581],_mm256_xor_si256(c2[2883],_mm256_xor_si256(c2[4728],_mm256_xor_si256(c2[4992],_mm256_xor_si256(c2[7908],_mm256_xor_si256(c2[1576],_mm256_xor_si256(c2[5273],_mm256_xor_si256(c2[7382],_mm256_xor_si256(c2[2365],_mm256_xor_si256(c2[4216],_mm256_xor_si256(c2[4480],c2[4481]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 9
d2[54]=_mm256_xor_si256(c2[3701],_mm256_xor_si256(c2[2125],_mm256_xor_si256(c2[388],_mm256_xor_si256(c2[1456],_mm256_xor_si256(c2[6757],_mm256_xor_si256(c2[4167],_mm256_xor_si256(c2[8401],c2[4994])))))));
//row: 10
d2[60]=_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[5044],_mm256_xor_si256(c2[4802],_mm256_xor_si256(c2[4047],_mm256_xor_si256(c2[8285],c2[701])))));
//row: 11
d2[66]=_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[1585],_mm256_xor_si256(c2[1849],_mm256_xor_si256(c2[6864],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[7132],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[529],_mm256_xor_si256(c2[2112],_mm256_xor_si256(c2[4225],_mm256_xor_si256(c2[281],_mm256_xor_si256(c2[1600],_mm256_xor_si256(c2[1864],_mm256_xor_si256(c2[2124],_mm256_xor_si256(c2[3713],_mm256_xor_si256(c2[1333],_mm256_xor_si256(c2[2916],_mm256_xor_si256(c2[1599],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[1349],_mm256_xor_si256(c2[1613],_mm256_xor_si256(c2[6888],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[5834],_mm256_xor_si256(c2[7417],_mm256_xor_si256(c2[8223],_mm256_xor_si256(c2[1095],_mm256_xor_si256(c2[1359],_mm256_xor_si256(c2[6108],_mm256_xor_si256(c2[7697],_mm256_xor_si256(c2[3736],_mm256_xor_si256(c2[5319],_mm256_xor_si256(c2[3745],_mm256_xor_si256(c2[5328],_mm256_xor_si256(c2[6914],_mm256_xor_si256(c2[50],_mm256_xor_si256(c2[313],_mm256_xor_si256(c2[1896],_mm256_xor_si256(c2[856],_mm256_xor_si256(c2[2175],_mm256_xor_si256(c2[2439],_mm256_xor_si256(c2[7982],_mm256_xor_si256(c2[1118],_mm256_xor_si256(c2[3756],_mm256_xor_si256(c2[5345],_mm256_xor_si256(c2[1661],_mm256_xor_si256(c2[2980],_mm256_xor_si256(c2[3244],_mm256_xor_si256(c2[4035],_mm256_xor_si256(c2[5618],_mm256_xor_si256(c2[5620],_mm256_xor_si256(c2[7203],_mm256_xor_si256(c2[6686],_mm256_xor_si256(c2[8269],_mm256_xor_si256(c2[6684],_mm256_xor_si256(c2[8273],_mm256_xor_si256(c2[1935],_mm256_xor_si256(c2[3518],_mm256_xor_si256(c2[6698],_mm256_xor_si256(c2[8281],_mm256_xor_si256(c2[3795],_mm256_xor_si256(c2[5378],_mm256_xor_si256(c2[1680],_mm256_xor_si256(c2[3269],_mm256_xor_si256(c2[3014],_mm256_xor_si256(c2[4333],_mm256_xor_si256(c2[4597],_mm256_xor_si256(c2[112],_mm256_xor_si256(c2[1695],_mm256_xor_si256(c2[3540],_mm256_xor_si256(c2[5129],_mm256_xor_si256(c2[3817],_mm256_xor_si256(c2[5136],_mm256_xor_si256(c2[5400],_mm256_xor_si256(c2[4082],_mm256_xor_si256(c2[5665],_mm256_xor_si256(c2[4874],_mm256_xor_si256(c2[6457],_mm256_xor_si256(c2[7261],_mm256_xor_si256(c2[133],_mm256_xor_si256(c2[397],_mm256_xor_si256(c2[5677],_mm256_xor_si256(c2[7260],_mm256_xor_si256(c2[8317],_mm256_xor_si256(c2[1453],_mm256_xor_si256(c2[8332],_mm256_xor_si256(c2[1204],_mm256_xor_si256(c2[1468],_mm256_xor_si256(c2[1203],_mm256_xor_si256(c2[2786],_mm256_xor_si256(c2[5693],_mm256_xor_si256(c2[7276],_mm256_xor_si256(c2[2256],_mm256_xor_si256(c2[5175],_mm256_xor_si256(c2[6494],_mm256_xor_si256(c2[6758],_mm256_xor_si256(c2[5968],_mm256_xor_si256(c2[7551],_mm256_xor_si256(c2[951],_mm256_xor_si256(c2[2534],_mm256_xor_si256(c2[2021],_mm256_xor_si256(c2[3604],_mm256_xor_si256(c2[1753],_mm256_xor_si256(c2[3336],_mm256_xor_si256(c2[701],_mm256_xor_si256(c2[2284],_mm256_xor_si256(c2[1505],_mm256_xor_si256(c2[2824],_mm256_xor_si256(c2[3088],_mm256_xor_si256(c2[4669],_mm256_xor_si256(c2[6252],_mm256_xor_si256(c2[972],_mm256_xor_si256(c2[2561],_mm256_xor_si256(c2[6529],_mm256_xor_si256(c2[7848],_mm256_xor_si256(c2[8112],_mm256_xor_si256(c2[4419],_mm256_xor_si256(c2[6002],_mm256_xor_si256(c2[8113],_mm256_xor_si256(c2[1249],_mm256_xor_si256(c2[4153],_mm256_xor_si256(c2[206],_mm256_xor_si256(c2[1789],_mm256_xor_si256(c2[4694],_mm256_xor_si256(c2[6277],_mm256_xor_si256(c2[7069],_mm256_xor_si256(c2[205],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[1541],_mm256_xor_si256(c2[1805],_mm256_xor_si256(c2[8141],_mm256_xor_si256(c2[1277],_mm256_xor_si256(c2[7872],_mm256_xor_si256(c2[1008],_mm256_xor_si256(c2[760],_mm256_xor_si256(c2[2079],_mm256_xor_si256(c2[2343],_mm256_xor_si256(c2[6830],_mm256_xor_si256(c2[8413],_mm256_xor_si256(c2[7360],_mm256_xor_si256(c2[496],_mm256_xor_si256(c2[6578],_mm256_xor_si256(c2[7897],_mm256_xor_si256(c2[8161],_mm256_xor_si256(c2[7372],_mm256_xor_si256(c2[508],_mm256_xor_si256(c2[5789],_mm256_xor_si256(c2[7372],_mm256_xor_si256(c2[2367],_mm256_xor_si256(c2[3686],_mm256_xor_si256(c2[3950],_mm256_xor_si256(c2[8173],_mm256_xor_si256(c2[1309],_mm256_xor_si256(c2[5271],_mm256_xor_si256(c2[6854],c2[7649])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 12
d2[72]=_mm256_xor_si256(c2[3434],_mm256_xor_si256(c2[6881],_mm256_xor_si256(c2[3821],_mm256_xor_si256(c2[2245],_mm256_xor_si256(c2[4909],c2[2858])))));
//row: 13
d2[78]=_mm256_xor_si256(c2[1323],_mm256_xor_si256(c2[1587],_mm256_xor_si256(c2[8185],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[1850],_mm256_xor_si256(c2[6603],_mm256_xor_si256(c2[1332],_mm256_xor_si256(c2[1596],_mm256_xor_si256(c2[3445],_mm256_xor_si256(c2[2654],_mm256_xor_si256(c2[1081],_mm256_xor_si256(c2[1345],_mm256_xor_si256(c2[8209],_mm256_xor_si256(c2[7155],_mm256_xor_si256(c2[833],_mm256_xor_si256(c2[1097],_mm256_xor_si256(c2[7429],_mm256_xor_si256(c2[5057],_mm256_xor_si256(c2[4529],_mm256_xor_si256(c2[5066],_mm256_xor_si256(c2[8235],_mm256_xor_si256(c2[1634],_mm256_xor_si256(c2[1913],_mm256_xor_si256(c2[2177],_mm256_xor_si256(c2[856],_mm256_xor_si256(c2[5077],_mm256_xor_si256(c2[2712],_mm256_xor_si256(c2[2976],_mm256_xor_si256(c2[5356],_mm256_xor_si256(c2[6941],_mm256_xor_si256(c2[8007],_mm256_xor_si256(c2[8005],_mm256_xor_si256(c2[3256],_mm256_xor_si256(c2[2726],_mm256_xor_si256(c2[8019],_mm256_xor_si256(c2[5116],_mm256_xor_si256(c2[3001],_mm256_xor_si256(c2[4071],_mm256_xor_si256(c2[4335],_mm256_xor_si256(c2[1433],_mm256_xor_si256(c2[4861],_mm256_xor_si256(c2[4874],_mm256_xor_si256(c2[5138],_mm256_xor_si256(c2[5403],_mm256_xor_si256(c2[6195],_mm256_xor_si256(c2[8318],_mm256_xor_si256(c2[135],_mm256_xor_si256(c2[6998],_mm256_xor_si256(c2[1191],_mm256_xor_si256(c2[936],_mm256_xor_si256(c2[1200],_mm256_xor_si256(c2[2524],_mm256_xor_si256(c2[7008],_mm256_xor_si256(c2[6232],_mm256_xor_si256(c2[6496],_mm256_xor_si256(c2[7289],_mm256_xor_si256(c2[2272],_mm256_xor_si256(c2[3336],_mm256_xor_si256(c2[3074],_mm256_xor_si256(c2[2016],_mm256_xor_si256(c2[2556],_mm256_xor_si256(c2[2820],_mm256_xor_si256(c2[5990],_mm256_xor_si256(c2[2293],_mm256_xor_si256(c2[7586],_mm256_xor_si256(c2[7850],_mm256_xor_si256(c2[5740],_mm256_xor_si256(c2[987],_mm256_xor_si256(c2[1527],_mm256_xor_si256(c2[6015],_mm256_xor_si256(c2[8390],_mm256_xor_si256(c2[1273],_mm256_xor_si256(c2[1537],_mm256_xor_si256(c2[1009],_mm256_xor_si256(c2[746],_mm256_xor_si256(c2[1817],_mm256_xor_si256(c2[2081],_mm256_xor_si256(c2[8151],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[7635],_mm256_xor_si256(c2[7899],_mm256_xor_si256(c2[240],_mm256_xor_si256(c2[7104],_mm256_xor_si256(c2[5259],_mm256_xor_si256(c2[3424],_mm256_xor_si256(c2[3688],_mm256_xor_si256(c2[1047],c2[6592])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 14
d2[84]=_mm256_xor_si256(c2[3700],_mm256_xor_si256(c2[6481],_mm256_xor_si256(c2[2560],_mm256_xor_si256(c2[6794],_mm256_xor_si256(c2[7336],c2[3420])))));
//row: 15
d2[90]=_mm256_xor_si256(c2[264],_mm256_xor_si256(c2[6868],_mm256_xor_si256(c2[7130],_mm256_xor_si256(c2[269],_mm256_xor_si256(c2[533],_mm256_xor_si256(c2[4489],_mm256_xor_si256(c2[279],_mm256_xor_si256(c2[2128],_mm256_xor_si256(c2[1073],_mm256_xor_si256(c2[1337],_mm256_xor_si256(c2[540],_mm256_xor_si256(c2[28],_mm256_xor_si256(c2[6892],_mm256_xor_si256(c2[5832],_mm256_xor_si256(c2[8221],_mm256_xor_si256(c2[6112],_mm256_xor_si256(c2[3470],_mm256_xor_si256(c2[3734],_mm256_xor_si256(c2[3749],_mm256_xor_si256(c2[6912],_mm256_xor_si256(c2[53],_mm256_xor_si256(c2[317],_mm256_xor_si256(c2[854],_mm256_xor_si256(c2[7980],_mm256_xor_si256(c2[3760],_mm256_xor_si256(c2[1659],_mm256_xor_si256(c2[4033],_mm256_xor_si256(c2[5354],_mm256_xor_si256(c2[5618],_mm256_xor_si256(c2[6684],_mm256_xor_si256(c2[6688],_mm256_xor_si256(c2[1669],_mm256_xor_si256(c2[1933],_mm256_xor_si256(c2[6696],_mm256_xor_si256(c2[3793],_mm256_xor_si256(c2[1420],_mm256_xor_si256(c2[1684],_mm256_xor_si256(c2[3012],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[3544],_mm256_xor_si256(c2[3821],_mm256_xor_si256(c2[4080],_mm256_xor_si256(c2[4608],_mm256_xor_si256(c2[4872],_mm256_xor_si256(c2[4872],_mm256_xor_si256(c2[7265],_mm256_xor_si256(c2[5681],_mm256_xor_si256(c2[8057],_mm256_xor_si256(c2[8321],_mm256_xor_si256(c2[8330],_mm256_xor_si256(c2[1201],_mm256_xor_si256(c2[5427],_mm256_xor_si256(c2[5691],_mm256_xor_si256(c2[5173],_mm256_xor_si256(c2[5966],_mm256_xor_si256(c2[685],_mm256_xor_si256(c2[949],_mm256_xor_si256(c2[8079],_mm256_xor_si256(c2[2019],_mm256_xor_si256(c2[1757],_mm256_xor_si256(c2[435],_mm256_xor_si256(c2[699],_mm256_xor_si256(c2[1503],_mm256_xor_si256(c2[4673],_mm256_xor_si256(c2[976],_mm256_xor_si256(c2[6533],_mm256_xor_si256(c2[4417],_mm256_xor_si256(c2[7853],_mm256_xor_si256(c2[8117],_mm256_xor_si256(c2[204],_mm256_xor_si256(c2[4692],_mm256_xor_si256(c2[6809],_mm256_xor_si256(c2[7073],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[8139],_mm256_xor_si256(c2[7612],_mm256_xor_si256(c2[7876],_mm256_xor_si256(c2[6289],_mm256_xor_si256(c2[758],_mm256_xor_si256(c2[6828],_mm256_xor_si256(c2[7358],_mm256_xor_si256(c2[6576],_mm256_xor_si256(c2[7370],_mm256_xor_si256(c2[5523],_mm256_xor_si256(c2[5787],_mm256_xor_si256(c2[2365],_mm256_xor_si256(c2[8177],_mm256_xor_si256(c2[5005],c2[5269]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 16
d2[96]=_mm256_xor_si256(c2[3173],_mm256_xor_si256(c2[1324],_mm256_xor_si256(c2[1586],_mm256_xor_si256(c2[3436],_mm256_xor_si256(c2[3182],_mm256_xor_si256(c2[5031],_mm256_xor_si256(c2[4240],_mm256_xor_si256(c2[3444],_mm256_xor_si256(c2[2931],_mm256_xor_si256(c2[1348],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[2677],_mm256_xor_si256(c2[568],_mm256_xor_si256(c2[6637],_mm256_xor_si256(c2[4792],_mm256_xor_si256(c2[6652],_mm256_xor_si256(c2[1368],_mm256_xor_si256(c2[3220],_mm256_xor_si256(c2[3757],_mm256_xor_si256(c2[2436],_mm256_xor_si256(c2[6663],_mm256_xor_si256(c2[4562],_mm256_xor_si256(c2[6936],_mm256_xor_si256(c2[74],_mm256_xor_si256(c2[1140],_mm256_xor_si256(c2[1144],_mm256_xor_si256(c2[4836],_mm256_xor_si256(c2[1152],_mm256_xor_si256(c2[6696],_mm256_xor_si256(c2[4587],_mm256_xor_si256(c2[5921],_mm256_xor_si256(c2[3013],_mm256_xor_si256(c2[6447],_mm256_xor_si256(c2[6724],_mm256_xor_si256(c2[6989],_mm256_xor_si256(c2[7781],_mm256_xor_si256(c2[1721],_mm256_xor_si256(c2[137],_mm256_xor_si256(c2[2777],_mm256_xor_si256(c2[6733],_mm256_xor_si256(c2[2786],_mm256_xor_si256(c2[4104],_mm256_xor_si256(c2[147],_mm256_xor_si256(c2[8076],_mm256_xor_si256(c2[422],_mm256_xor_si256(c2[3852],_mm256_xor_si256(c2[4922],_mm256_xor_si256(c2[4660],_mm256_xor_si256(c2[3602],_mm256_xor_si256(c2[4406],_mm256_xor_si256(c2[7576],_mm256_xor_si256(c2[3879],_mm256_xor_si256(c2[989],_mm256_xor_si256(c2[7320],_mm256_xor_si256(c2[2573],_mm256_xor_si256(c2[3113],_mm256_xor_si256(c2[7601],_mm256_xor_si256(c2[1529],_mm256_xor_si256(c2[3123],_mm256_xor_si256(c2[2595],_mm256_xor_si256(c2[2332],_mm256_xor_si256(c2[3661],_mm256_xor_si256(c2[1284],_mm256_xor_si256(c2[1814],_mm256_xor_si256(c2[1032],_mm256_xor_si256(c2[1826],_mm256_xor_si256(c2[243],_mm256_xor_si256(c2[507],_mm256_xor_si256(c2[5268],_mm256_xor_si256(c2[2633],c2[8172]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 17
d2[102]=_mm256_xor_si256(c2[1058],_mm256_xor_si256(c2[4131],_mm256_xor_si256(c2[4682],_mm256_xor_si256(c2[1793],c2[6329]))));
//row: 18
d2[108]=_mm256_xor_si256(c2[544],_mm256_xor_si256(c2[941],_mm256_xor_si256(c2[6494],_mm256_xor_si256(c2[1276],c2[1284]))));
//row: 19
d2[114]=_mm256_xor_si256(c2[4492],_mm256_xor_si256(c2[5556],_mm256_xor_si256(c2[6424],_mm256_xor_si256(c2[4849],c2[1440]))));
//row: 20
d2[120]=_mm256_xor_si256(c2[3701],_mm256_xor_si256(c2[1852],_mm256_xor_si256(c2[2114],_mm256_xor_si256(c2[3964],_mm256_xor_si256(c2[7133],_mm256_xor_si256(c2[3710],_mm256_xor_si256(c2[5559],_mm256_xor_si256(c2[4768],_mm256_xor_si256(c2[3459],_mm256_xor_si256(c2[1876],_mm256_xor_si256(c2[816],_mm256_xor_si256(c2[3205],_mm256_xor_si256(c2[1096],_mm256_xor_si256(c2[7165],_mm256_xor_si256(c2[3732],_mm256_xor_si256(c2[7180],_mm256_xor_si256(c2[1896],_mm256_xor_si256(c2[3748],_mm256_xor_si256(c2[4285],_mm256_xor_si256(c2[2964],_mm256_xor_si256(c2[7191],_mm256_xor_si256(c2[5090],_mm256_xor_si256(c2[7464],_mm256_xor_si256(c2[602],_mm256_xor_si256(c2[1668],_mm256_xor_si256(c2[1672],_mm256_xor_si256(c2[5364],_mm256_xor_si256(c2[1680],_mm256_xor_si256(c2[7224],_mm256_xor_si256(c2[5115],_mm256_xor_si256(c2[6449],_mm256_xor_si256(c2[3541],_mm256_xor_si256(c2[6975],_mm256_xor_si256(c2[2222],_mm256_xor_si256(c2[7252],_mm256_xor_si256(c2[7517],_mm256_xor_si256(c2[8309],_mm256_xor_si256(c2[2249],_mm256_xor_si256(c2[665],_mm256_xor_si256(c2[3305],_mm256_xor_si256(c2[5680],_mm256_xor_si256(c2[3314],_mm256_xor_si256(c2[4632],_mm256_xor_si256(c2[675],_mm256_xor_si256(c2[157],_mm256_xor_si256(c2[950],_mm256_xor_si256(c2[4380],_mm256_xor_si256(c2[5450],_mm256_xor_si256(c2[5188],_mm256_xor_si256(c2[4130],_mm256_xor_si256(c2[4934],_mm256_xor_si256(c2[8104],_mm256_xor_si256(c2[4407],_mm256_xor_si256(c2[1517],_mm256_xor_si256(c2[7848],_mm256_xor_si256(c2[3101],_mm256_xor_si256(c2[3641],_mm256_xor_si256(c2[8129],_mm256_xor_si256(c2[2057],_mm256_xor_si256(c2[3651],_mm256_xor_si256(c2[3123],_mm256_xor_si256(c2[2860],_mm256_xor_si256(c2[4189],_mm256_xor_si256(c2[1812],_mm256_xor_si256(c2[2342],_mm256_xor_si256(c2[1560],_mm256_xor_si256(c2[2354],_mm256_xor_si256(c2[771],_mm256_xor_si256(c2[5796],_mm256_xor_si256(c2[3161],c2[253]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 21
d2[126]=_mm256_xor_si256(c2[3444],_mm256_xor_si256(c2[1647],_mm256_xor_si256(c2[2308],_mm256_xor_si256(c2[5784],c2[519]))));
//row: 22
d2[132]=_mm256_xor_si256(c2[7920],_mm256_xor_si256(c2[3048],_mm256_xor_si256(c2[2533],c2[6012])));
//row: 23
d2[138]=_mm256_xor_si256(c2[6348],_mm256_xor_si256(c2[6626],_mm256_xor_si256(c2[7777],c2[7344])));
//row: 24
d2[144]=_mm256_xor_si256(c2[7660],_mm256_xor_si256(c2[5811],_mm256_xor_si256(c2[6073],_mm256_xor_si256(c2[7923],_mm256_xor_si256(c2[2643],_mm256_xor_si256(c2[7669],_mm256_xor_si256(c2[1071],_mm256_xor_si256(c2[280],_mm256_xor_si256(c2[7418],_mm256_xor_si256(c2[5835],_mm256_xor_si256(c2[4781],_mm256_xor_si256(c2[7164],_mm256_xor_si256(c2[5055],_mm256_xor_si256(c2[2677],_mm256_xor_si256(c2[7960],_mm256_xor_si256(c2[2692],_mm256_xor_si256(c2[5861],_mm256_xor_si256(c2[7707],_mm256_xor_si256(c2[2953],_mm256_xor_si256(c2[8244],_mm256_xor_si256(c2[6929],_mm256_xor_si256(c2[2703],_mm256_xor_si256(c2[602],_mm256_xor_si256(c2[2976],_mm256_xor_si256(c2[4561],_mm256_xor_si256(c2[5633],_mm256_xor_si256(c2[5631],_mm256_xor_si256(c2[876],_mm256_xor_si256(c2[5645],_mm256_xor_si256(c2[2736],_mm256_xor_si256(c2[627],_mm256_xor_si256(c2[1961],_mm256_xor_si256(c2[7500],_mm256_xor_si256(c2[2487],_mm256_xor_si256(c2[2764],_mm256_xor_si256(c2[3029],_mm256_xor_si256(c2[3821],_mm256_xor_si256(c2[6208],_mm256_xor_si256(c2[4624],_mm256_xor_si256(c2[7264],_mm256_xor_si256(c2[5152],_mm256_xor_si256(c2[7273],_mm256_xor_si256(c2[144],_mm256_xor_si256(c2[4634],_mm256_xor_si256(c2[4116],_mm256_xor_si256(c2[4909],_mm256_xor_si256(c2[8345],_mm256_xor_si256(c2[962],_mm256_xor_si256(c2[700],_mm256_xor_si256(c2[8089],_mm256_xor_si256(c2[446],_mm256_xor_si256(c2[3616],_mm256_xor_si256(c2[8366],_mm256_xor_si256(c2[5476],_mm256_xor_si256(c2[3360],_mm256_xor_si256(c2[7060],_mm256_xor_si256(c2[7600],_mm256_xor_si256(c2[3641],_mm256_xor_si256(c2[6016],_mm256_xor_si256(c2[7610],_mm256_xor_si256(c2[7082],_mm256_xor_si256(c2[6819],_mm256_xor_si256(c2[8148],_mm256_xor_si256(c2[5777],_mm256_xor_si256(c2[6301],_mm256_xor_si256(c2[5525],_mm256_xor_si256(c2[6313],_mm256_xor_si256(c2[4730],_mm256_xor_si256(c2[1308],_mm256_xor_si256(c2[7120],c2[4212]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 25
d2[150]=_mm256_xor_si256(c2[2126],_mm256_xor_si256(c2[4560],_mm256_xor_si256(c2[8273],c2[6507])));
//row: 26
d2[156]=_mm256_xor_si256(c2[1850],_mm256_xor_si256(c2[4514],_mm256_xor_si256(c2[3218],c2[2296])));
//row: 27
d2[162]=_mm256_xor_si256(c2[540],_mm256_xor_si256(c2[600],c2[1419]));
//row: 28
d2[168]=_mm256_xor_si256(c2[7920],_mm256_xor_si256(c2[5064],_mm256_xor_si256(c2[5509],c2[5006])));
//row: 29
d2[174]=_mm256_xor_si256(c2[528],_mm256_xor_si256(c2[7132],_mm256_xor_si256(c2[7394],_mm256_xor_si256(c2[533],_mm256_xor_si256(c2[797],_mm256_xor_si256(c2[543],_mm256_xor_si256(c2[2392],_mm256_xor_si256(c2[1337],_mm256_xor_si256(c2[1601],_mm256_xor_si256(c2[7405],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[7156],_mm256_xor_si256(c2[6096],_mm256_xor_si256(c2[38],_mm256_xor_si256(c2[6376],_mm256_xor_si256(c2[3734],_mm256_xor_si256(c2[3998],_mm256_xor_si256(c2[4013],_mm256_xor_si256(c2[7176],_mm256_xor_si256(c2[317],_mm256_xor_si256(c2[581],_mm256_xor_si256(c2[1118],_mm256_xor_si256(c2[8244],_mm256_xor_si256(c2[4024],_mm256_xor_si256(c2[1923],_mm256_xor_si256(c2[4297],_mm256_xor_si256(c2[5618],_mm256_xor_si256(c2[5882],_mm256_xor_si256(c2[6948],_mm256_xor_si256(c2[6952],_mm256_xor_si256(c2[1933],_mm256_xor_si256(c2[2197],_mm256_xor_si256(c2[6960],_mm256_xor_si256(c2[4057],_mm256_xor_si256(c2[1684],_mm256_xor_si256(c2[1948],_mm256_xor_si256(c2[3276],_mm256_xor_si256(c2[374],_mm256_xor_si256(c2[3808],_mm256_xor_si256(c2[4085],_mm256_xor_si256(c2[4344],_mm256_xor_si256(c2[4872],_mm256_xor_si256(c2[5136],_mm256_xor_si256(c2[7529],_mm256_xor_si256(c2[5945],_mm256_xor_si256(c2[8321],_mm256_xor_si256(c2[132],_mm256_xor_si256(c2[147],_mm256_xor_si256(c2[1465],_mm256_xor_si256(c2[5691],_mm256_xor_si256(c2[5955],_mm256_xor_si256(c2[5437],_mm256_xor_si256(c2[6230],_mm256_xor_si256(c2[949],_mm256_xor_si256(c2[1213],_mm256_xor_si256(c2[2283],_mm256_xor_si256(c2[2021],_mm256_xor_si256(c2[699],_mm256_xor_si256(c2[963],_mm256_xor_si256(c2[1488],_mm256_xor_si256(c2[1767],_mm256_xor_si256(c2[4937],_mm256_xor_si256(c2[1240],_mm256_xor_si256(c2[6797],_mm256_xor_si256(c2[4681],_mm256_xor_si256(c2[8117],_mm256_xor_si256(c2[8381],_mm256_xor_si256(c2[468],_mm256_xor_si256(c2[4956],_mm256_xor_si256(c2[7073],_mm256_xor_si256(c2[7337],_mm256_xor_si256(c2[484],_mm256_xor_si256(c2[8403],_mm256_xor_si256(c2[7876],_mm256_xor_si256(c2[8140],_mm256_xor_si256(c2[5236],_mm256_xor_si256(c2[1022],_mm256_xor_si256(c2[7092],_mm256_xor_si256(c2[7622],_mm256_xor_si256(c2[6840],_mm256_xor_si256(c2[7634],_mm256_xor_si256(c2[5787],_mm256_xor_si256(c2[6051],_mm256_xor_si256(c2[2629],_mm256_xor_si256(c2[8441],_mm256_xor_si256(c2[5269],c2[5533]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 30
d2[180]=_mm256_xor_si256(c2[3696],_mm256_xor_si256(c2[1853],_mm256_xor_si256(c2[1851],_mm256_xor_si256(c2[2115],_mm256_xor_si256(c2[3701],_mm256_xor_si256(c2[3965],_mm256_xor_si256(c2[8188],_mm256_xor_si256(c2[3711],_mm256_xor_si256(c2[5296],_mm256_xor_si256(c2[5560],_mm256_xor_si256(c2[4505],_mm256_xor_si256(c2[4769],_mm256_xor_si256(c2[3460],_mm256_xor_si256(c2[1877],_mm256_xor_si256(c2[553],_mm256_xor_si256(c2[817],_mm256_xor_si256(c2[3206],_mm256_xor_si256(c2[1097],_mm256_xor_si256(c2[6902],_mm256_xor_si256(c2[7166],_mm256_xor_si256(c2[7181],_mm256_xor_si256(c2[1633],_mm256_xor_si256(c2[1897],_mm256_xor_si256(c2[3485],_mm256_xor_si256(c2[3749],_mm256_xor_si256(c2[4286],_mm256_xor_si256(c2[2965],_mm256_xor_si256(c2[6928],_mm256_xor_si256(c2[7192],_mm256_xor_si256(c2[5091],_mm256_xor_si256(c2[7201],_mm256_xor_si256(c2[7465],_mm256_xor_si256(c2[339],_mm256_xor_si256(c2[603],_mm256_xor_si256(c2[1669],_mm256_xor_si256(c2[1409],_mm256_xor_si256(c2[1673],_mm256_xor_si256(c2[5101],_mm256_xor_si256(c2[5365],_mm256_xor_si256(c2[1681],_mm256_xor_si256(c2[6961],_mm256_xor_si256(c2[7225],_mm256_xor_si256(c2[4852],_mm256_xor_si256(c2[5116],_mm256_xor_si256(c2[6444],_mm256_xor_si256(c2[3542],_mm256_xor_si256(c2[6712],_mm256_xor_si256(c2[6976],_mm256_xor_si256(c2[7253],_mm256_xor_si256(c2[7248],_mm256_xor_si256(c2[7512],_mm256_xor_si256(c2[8040],_mm256_xor_si256(c2[8304],_mm256_xor_si256(c2[1441],_mm256_xor_si256(c2[2244],_mm256_xor_si256(c2[660],_mm256_xor_si256(c2[3036],_mm256_xor_si256(c2[3300],_mm256_xor_si256(c2[3315],_mm256_xor_si256(c2[4633],_mm256_xor_si256(c2[412],_mm256_xor_si256(c2[676],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[687],_mm256_xor_si256(c2[951],_mm256_xor_si256(c2[4117],_mm256_xor_si256(c2[4381],_mm256_xor_si256(c2[1214],_mm256_xor_si256(c2[5451],_mm256_xor_si256(c2[4925],_mm256_xor_si256(c2[5189],_mm256_xor_si256(c2[3867],_mm256_xor_si256(c2[4131],_mm256_xor_si256(c2[4935],_mm256_xor_si256(c2[8105],_mm256_xor_si256(c2[4144],_mm256_xor_si256(c2[4408],_mm256_xor_si256(c2[1512],_mm256_xor_si256(c2[7849],_mm256_xor_si256(c2[2832],_mm256_xor_si256(c2[3096],_mm256_xor_si256(c2[3636],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[8124],_mm256_xor_si256(c2[1788],_mm256_xor_si256(c2[2052],_mm256_xor_si256(c2[3652],_mm256_xor_si256(c2[2860],_mm256_xor_si256(c2[3124],_mm256_xor_si256(c2[2597],_mm256_xor_si256(c2[2861],_mm256_xor_si256(c2[4190],_mm256_xor_si256(c2[1813],_mm256_xor_si256(c2[2079],_mm256_xor_si256(c2[2343],_mm256_xor_si256(c2[1561],_mm256_xor_si256(c2[2091],_mm256_xor_si256(c2[2355],_mm256_xor_si256(c2[508],_mm256_xor_si256(c2[772],_mm256_xor_si256(c2[5797],_mm256_xor_si256(c2[3156],_mm256_xor_si256(c2[8437],c2[254])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 31
d2[186]=_mm256_xor_si256(c2[5549],_mm256_xor_si256(c2[5285],_mm256_xor_si256(c2[3700],_mm256_xor_si256(c2[3436],_mm256_xor_si256(c2[3962],_mm256_xor_si256(c2[3698],_mm256_xor_si256(c2[5812],_mm256_xor_si256(c2[5284],_mm256_xor_si256(c2[5548],_mm256_xor_si256(c2[5558],_mm256_xor_si256(c2[5294],_mm256_xor_si256(c2[7407],_mm256_xor_si256(c2[7143],_mm256_xor_si256(c2[6616],_mm256_xor_si256(c2[6088],_mm256_xor_si256(c2[6352],_mm256_xor_si256(c2[1071],_mm256_xor_si256(c2[5307],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[3724],_mm256_xor_si256(c2[3460],_mm256_xor_si256(c2[2664],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[5053],_mm256_xor_si256(c2[4789],_mm256_xor_si256(c2[2944],_mm256_xor_si256(c2[2680],_mm256_xor_si256(c2[566],_mm256_xor_si256(c2[38],_mm256_xor_si256(c2[302],_mm256_xor_si256(c2[581],_mm256_xor_si256(c2[317],_mm256_xor_si256(c2[3744],_mm256_xor_si256(c2[3480],_mm256_xor_si256(c2[5596],_mm256_xor_si256(c2[5068],_mm256_xor_si256(c2[5332],_mm256_xor_si256(c2[6133],_mm256_xor_si256(c2[5869],_mm256_xor_si256(c2[4812],_mm256_xor_si256(c2[4548],_mm256_xor_si256(c2[592],_mm256_xor_si256(c2[328],_mm256_xor_si256(c2[6938],_mm256_xor_si256(c2[6674],_mm256_xor_si256(c2[865],_mm256_xor_si256(c2[601],_mm256_xor_si256(c2[2450],_mm256_xor_si256(c2[1922],_mm256_xor_si256(c2[2186],_mm256_xor_si256(c2[3516],_mm256_xor_si256(c2[3252],_mm256_xor_si256(c2[3520],_mm256_xor_si256(c2[3256],_mm256_xor_si256(c2[7212],_mm256_xor_si256(c2[6684],_mm256_xor_si256(c2[6948],_mm256_xor_si256(c2[6156],_mm256_xor_si256(c2[3528],_mm256_xor_si256(c2[3264],_mm256_xor_si256(c2[625],_mm256_xor_si256(c2[361],_mm256_xor_si256(c2[6963],_mm256_xor_si256(c2[6435],_mm256_xor_si256(c2[6699],_mm256_xor_si256(c2[8297],_mm256_xor_si256(c2[8033],_mm256_xor_si256(c2[5389],_mm256_xor_si256(c2[5125],_mm256_xor_si256(c2[376],_mm256_xor_si256(c2[112],_mm256_xor_si256(c2[653],_mm256_xor_si256(c2[389],_mm256_xor_si256(c2[912],_mm256_xor_si256(c2[648],_mm256_xor_si256(c2[1704],_mm256_xor_si256(c2[1176],_mm256_xor_si256(c2[1440],_mm256_xor_si256(c2[4097],_mm256_xor_si256(c2[3833],_mm256_xor_si256(c2[2513],_mm256_xor_si256(c2[2249],_mm256_xor_si256(c2[5153],_mm256_xor_si256(c2[4625],_mm256_xor_si256(c2[4889],_mm256_xor_si256(c2[5162],_mm256_xor_si256(c2[4898],_mm256_xor_si256(c2[6480],_mm256_xor_si256(c2[6216],_mm256_xor_si256(c2[2523],_mm256_xor_si256(c2[1995],_mm256_xor_si256(c2[2259],_mm256_xor_si256(c2[2005],_mm256_xor_si256(c2[1741],_mm256_xor_si256(c2[2798],_mm256_xor_si256(c2[2534],_mm256_xor_si256(c2[6228],_mm256_xor_si256(c2[5700],_mm256_xor_si256(c2[5964],_mm256_xor_si256(c2[7298],_mm256_xor_si256(c2[7034],_mm256_xor_si256(c2[7036],_mm256_xor_si256(c2[6772],_mm256_xor_si256(c2[5978],_mm256_xor_si256(c2[5450],_mm256_xor_si256(c2[5714],_mm256_xor_si256(c2[6782],_mm256_xor_si256(c2[6518],_mm256_xor_si256(c2[1505],_mm256_xor_si256(c2[1241],_mm256_xor_si256(c2[6255],_mm256_xor_si256(c2[5991],_mm256_xor_si256(c2[3365],_mm256_xor_si256(c2[3101],_mm256_xor_si256(c2[1249],_mm256_xor_si256(c2[985],_mm256_xor_si256(c2[4949],_mm256_xor_si256(c2[4421],_mm256_xor_si256(c2[4685],_mm256_xor_si256(c2[5489],_mm256_xor_si256(c2[5225],_mm256_xor_si256(c2[1524],_mm256_xor_si256(c2[1260],_mm256_xor_si256(c2[3905],_mm256_xor_si256(c2[3377],_mm256_xor_si256(c2[3641],_mm256_xor_si256(c2[5499],_mm256_xor_si256(c2[5235],_mm256_xor_si256(c2[4971],_mm256_xor_si256(c2[4707],_mm256_xor_si256(c2[4708],_mm256_xor_si256(c2[4180],_mm256_xor_si256(c2[4444],_mm256_xor_si256(c2[6037],_mm256_xor_si256(c2[5773],_mm256_xor_si256(c2[3660],_mm256_xor_si256(c2[3396],_mm256_xor_si256(c2[4190],_mm256_xor_si256(c2[3926],_mm256_xor_si256(c2[3408],_mm256_xor_si256(c2[3144],_mm256_xor_si256(c2[4202],_mm256_xor_si256(c2[3938],_mm256_xor_si256(c2[2619],_mm256_xor_si256(c2[2091],_mm256_xor_si256(c2[2355],_mm256_xor_si256(c2[7644],_mm256_xor_si256(c2[7380],_mm256_xor_si256(c2[5009],_mm256_xor_si256(c2[4745],_mm256_xor_si256(c2[2101],_mm256_xor_si256(c2[1573],c2[1837]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 32
d2[192]=_mm256_xor_si256(c2[5016],_mm256_xor_si256(c2[3173],_mm256_xor_si256(c2[3171],_mm256_xor_si256(c2[3435],_mm256_xor_si256(c2[5021],_mm256_xor_si256(c2[5285],_mm256_xor_si256(c2[1587],_mm256_xor_si256(c2[5031],_mm256_xor_si256(c2[6616],_mm256_xor_si256(c2[6880],_mm256_xor_si256(c2[5825],_mm256_xor_si256(c2[6089],_mm256_xor_si256(c2[4780],_mm256_xor_si256(c2[3197],_mm256_xor_si256(c2[1873],_mm256_xor_si256(c2[2137],_mm256_xor_si256(c2[4526],_mm256_xor_si256(c2[2417],_mm256_xor_si256(c2[8222],_mm256_xor_si256(c2[39],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[2953],_mm256_xor_si256(c2[3217],_mm256_xor_si256(c2[4805],_mm256_xor_si256(c2[5069],_mm256_xor_si256(c2[5606],_mm256_xor_si256(c2[4285],_mm256_xor_si256(c2[8248],_mm256_xor_si256(c2[65],_mm256_xor_si256(c2[6411],_mm256_xor_si256(c2[74],_mm256_xor_si256(c2[338],_mm256_xor_si256(c2[1659],_mm256_xor_si256(c2[1923],_mm256_xor_si256(c2[2989],_mm256_xor_si256(c2[2729],_mm256_xor_si256(c2[2993],_mm256_xor_si256(c2[6421],_mm256_xor_si256(c2[6685],_mm256_xor_si256(c2[3001],_mm256_xor_si256(c2[8281],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[6172],_mm256_xor_si256(c2[6436],_mm256_xor_si256(c2[7764],_mm256_xor_si256(c2[4862],_mm256_xor_si256(c2[8032],_mm256_xor_si256(c2[8296],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[121],_mm256_xor_si256(c2[385],_mm256_xor_si256(c2[913],_mm256_xor_si256(c2[1177],_mm256_xor_si256(c2[3564],_mm256_xor_si256(c2[1980],_mm256_xor_si256(c2[4356],_mm256_xor_si256(c2[4620],_mm256_xor_si256(c2[4635],_mm256_xor_si256(c2[5953],_mm256_xor_si256(c2[1732],_mm256_xor_si256(c2[1996],_mm256_xor_si256(c2[2520],_mm256_xor_si256(c2[1478],_mm256_xor_si256(c2[2007],_mm256_xor_si256(c2[2271],_mm256_xor_si256(c2[5437],_mm256_xor_si256(c2[5701],_mm256_xor_si256(c2[6771],_mm256_xor_si256(c2[6245],_mm256_xor_si256(c2[6509],_mm256_xor_si256(c2[5187],_mm256_xor_si256(c2[5451],_mm256_xor_si256(c2[4133],_mm256_xor_si256(c2[6255],_mm256_xor_si256(c2[972],_mm256_xor_si256(c2[5464],_mm256_xor_si256(c2[5728],_mm256_xor_si256(c2[2832],_mm256_xor_si256(c2[722],_mm256_xor_si256(c2[4152],_mm256_xor_si256(c2[4416],_mm256_xor_si256(c2[4956],_mm256_xor_si256(c2[733],_mm256_xor_si256(c2[997],_mm256_xor_si256(c2[3108],_mm256_xor_si256(c2[3372],_mm256_xor_si256(c2[4972],_mm256_xor_si256(c2[4180],_mm256_xor_si256(c2[4444],_mm256_xor_si256(c2[3917],_mm256_xor_si256(c2[4181],_mm256_xor_si256(c2[5510],_mm256_xor_si256(c2[3133],_mm256_xor_si256(c2[3399],_mm256_xor_si256(c2[3663],_mm256_xor_si256(c2[2881],_mm256_xor_si256(c2[3411],_mm256_xor_si256(c2[3675],_mm256_xor_si256(c2[1828],_mm256_xor_si256(c2[2092],_mm256_xor_si256(c2[7117],_mm256_xor_si256(c2[4476],_mm256_xor_si256(c2[1310],c2[1574])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 33
d2[198]=_mm256_xor_si256(c2[808],_mm256_xor_si256(c2[2136],_mm256_xor_si256(c2[2513],c2[2631])));
//row: 34
d2[204]=_mm256_xor_si256(c2[1585],_mm256_xor_si256(c2[5368],_mm256_xor_si256(c2[2820],c2[6543])));
//row: 35
d2[210]=_mm256_xor_si256(c2[7661],_mm256_xor_si256(c2[5812],_mm256_xor_si256(c2[6074],_mm256_xor_si256(c2[7924],_mm256_xor_si256(c2[7670],_mm256_xor_si256(c2[1072],_mm256_xor_si256(c2[281],_mm256_xor_si256(c2[16],_mm256_xor_si256(c2[7419],_mm256_xor_si256(c2[5836],_mm256_xor_si256(c2[4776],_mm256_xor_si256(c2[7165],_mm256_xor_si256(c2[5056],_mm256_xor_si256(c2[2678],_mm256_xor_si256(c2[2693],_mm256_xor_si256(c2[5856],_mm256_xor_si256(c2[7708],_mm256_xor_si256(c2[8245],_mm256_xor_si256(c2[6924],_mm256_xor_si256(c2[2704],_mm256_xor_si256(c2[603],_mm256_xor_si256(c2[2977],_mm256_xor_si256(c2[4562],_mm256_xor_si256(c2[4036],_mm256_xor_si256(c2[5628],_mm256_xor_si256(c2[5632],_mm256_xor_si256(c2[877],_mm256_xor_si256(c2[5640],_mm256_xor_si256(c2[2737],_mm256_xor_si256(c2[628],_mm256_xor_si256(c2[1956],_mm256_xor_si256(c2[7501],_mm256_xor_si256(c2[2488],_mm256_xor_si256(c2[2765],_mm256_xor_si256(c2[3024],_mm256_xor_si256(c2[3816],_mm256_xor_si256(c2[6209],_mm256_xor_si256(c2[4625],_mm256_xor_si256(c2[7265],_mm256_xor_si256(c2[7274],_mm256_xor_si256(c2[145],_mm256_xor_si256(c2[4635],_mm256_xor_si256(c2[672],_mm256_xor_si256(c2[4117],_mm256_xor_si256(c2[4910],_mm256_xor_si256(c2[8340],_mm256_xor_si256(c2[963],_mm256_xor_si256(c2[701],_mm256_xor_si256(c2[8090],_mm256_xor_si256(c2[447],_mm256_xor_si256(c2[3617],_mm256_xor_si256(c2[8367],_mm256_xor_si256(c2[5477],_mm256_xor_si256(c2[3361],_mm256_xor_si256(c2[7061],_mm256_xor_si256(c2[7601],_mm256_xor_si256(c2[3636],_mm256_xor_si256(c2[6017],_mm256_xor_si256(c2[7611],_mm256_xor_si256(c2[7083],_mm256_xor_si256(c2[6820],_mm256_xor_si256(c2[8149],_mm256_xor_si256(c2[5772],_mm256_xor_si256(c2[6302],_mm256_xor_si256(c2[5520],_mm256_xor_si256(c2[6314],_mm256_xor_si256(c2[4731],_mm256_xor_si256(c2[1309],_mm256_xor_si256(c2[7121],c2[4213])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 36
d2[216]=_mm256_xor_si256(c2[4752],_mm256_xor_si256(c2[6771],_mm256_xor_si256(c2[2559],c2[5760])));
//row: 37
d2[222]=_mm256_xor_si256(c2[1585],_mm256_xor_si256(c2[1849],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[2112],_mm256_xor_si256(c2[1600],_mm256_xor_si256(c2[1864],_mm256_xor_si256(c2[3713],_mm256_xor_si256(c2[2916],_mm256_xor_si256(c2[3446],_mm256_xor_si256(c2[1349],_mm256_xor_si256(c2[1613],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[7417],_mm256_xor_si256(c2[1095],_mm256_xor_si256(c2[1359],_mm256_xor_si256(c2[7697],_mm256_xor_si256(c2[5319],_mm256_xor_si256(c2[5328],_mm256_xor_si256(c2[50],_mm256_xor_si256(c2[1896],_mm256_xor_si256(c2[2175],_mm256_xor_si256(c2[2439],_mm256_xor_si256(c2[1118],_mm256_xor_si256(c2[5345],_mm256_xor_si256(c2[2980],_mm256_xor_si256(c2[3244],_mm256_xor_si256(c2[5618],_mm256_xor_si256(c2[7203],_mm256_xor_si256(c2[8269],_mm256_xor_si256(c2[8273],_mm256_xor_si256(c2[3518],_mm256_xor_si256(c2[8281],_mm256_xor_si256(c2[5378],_mm256_xor_si256(c2[3269],_mm256_xor_si256(c2[4333],_mm256_xor_si256(c2[4597],_mm256_xor_si256(c2[1695],_mm256_xor_si256(c2[5129],_mm256_xor_si256(c2[5136],_mm256_xor_si256(c2[5400],_mm256_xor_si256(c2[5665],_mm256_xor_si256(c2[6457],_mm256_xor_si256(c2[133],_mm256_xor_si256(c2[397],_mm256_xor_si256(c2[7260],_mm256_xor_si256(c2[1453],_mm256_xor_si256(c2[1204],_mm256_xor_si256(c2[1468],_mm256_xor_si256(c2[2786],_mm256_xor_si256(c2[7276],_mm256_xor_si256(c2[6494],_mm256_xor_si256(c2[6758],_mm256_xor_si256(c2[7551],_mm256_xor_si256(c2[2534],_mm256_xor_si256(c2[4910],_mm256_xor_si256(c2[3604],_mm256_xor_si256(c2[3336],_mm256_xor_si256(c2[2284],_mm256_xor_si256(c2[2824],_mm256_xor_si256(c2[3088],_mm256_xor_si256(c2[6252],_mm256_xor_si256(c2[2561],_mm256_xor_si256(c2[7848],_mm256_xor_si256(c2[8112],_mm256_xor_si256(c2[6002],_mm256_xor_si256(c2[1249],_mm256_xor_si256(c2[1789],_mm256_xor_si256(c2[6277],_mm256_xor_si256(c2[205],_mm256_xor_si256(c2[1541],_mm256_xor_si256(c2[1805],_mm256_xor_si256(c2[1277],_mm256_xor_si256(c2[1008],_mm256_xor_si256(c2[2079],_mm256_xor_si256(c2[2343],_mm256_xor_si256(c2[8413],_mm256_xor_si256(c2[496],_mm256_xor_si256(c2[7897],_mm256_xor_si256(c2[8161],_mm256_xor_si256(c2[508],_mm256_xor_si256(c2[7372],_mm256_xor_si256(c2[3686],_mm256_xor_si256(c2[3950],_mm256_xor_si256(c2[1309],c2[6854])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 38
d2[228]=_mm256_xor_si256(c2[6605],_mm256_xor_si256(c2[4601],_mm256_xor_si256(c2[387],c2[5952])));
//row: 39
d2[234]=_mm256_xor_si256(c2[542],_mm256_xor_si256(c2[7694],_mm256_xor_si256(c2[6952],c2[2607])));
//row: 40
d2[240]=_mm256_xor_si256(c2[3965],_mm256_xor_si256(c2[1417],c2[6543]));
//row: 41
d2[246]=_mm256_xor_si256(c2[5293],_mm256_xor_si256(c2[6903],_mm256_xor_si256(c2[3016],c2[219])));
//row: 42
d2[252]=_mm256_xor_si256(c2[3700],_mm256_xor_si256(c2[1851],_mm256_xor_si256(c2[1849],_mm256_xor_si256(c2[2113],_mm256_xor_si256(c2[3699],_mm256_xor_si256(c2[3963],_mm256_xor_si256(c2[4491],_mm256_xor_si256(c2[3709],_mm256_xor_si256(c2[5294],_mm256_xor_si256(c2[5558],_mm256_xor_si256(c2[4503],_mm256_xor_si256(c2[4767],_mm256_xor_si256(c2[3458],_mm256_xor_si256(c2[1875],_mm256_xor_si256(c2[557],_mm256_xor_si256(c2[821],_mm256_xor_si256(c2[3204],_mm256_xor_si256(c2[1095],_mm256_xor_si256(c2[6900],_mm256_xor_si256(c2[7164],_mm256_xor_si256(c2[7179],_mm256_xor_si256(c2[1637],_mm256_xor_si256(c2[1901],_mm256_xor_si256(c2[3483],_mm256_xor_si256(c2[3747],_mm256_xor_si256(c2[3744],_mm256_xor_si256(c2[4284],_mm256_xor_si256(c2[2969],_mm256_xor_si256(c2[6926],_mm256_xor_si256(c2[7190],_mm256_xor_si256(c2[5089],_mm256_xor_si256(c2[7205],_mm256_xor_si256(c2[7469],_mm256_xor_si256(c2[337],_mm256_xor_si256(c2[601],_mm256_xor_si256(c2[1673],_mm256_xor_si256(c2[1407],_mm256_xor_si256(c2[1671],_mm256_xor_si256(c2[5105],_mm256_xor_si256(c2[5369],_mm256_xor_si256(c2[1685],_mm256_xor_si256(c2[6965],_mm256_xor_si256(c2[7229],_mm256_xor_si256(c2[4850],_mm256_xor_si256(c2[5114],_mm256_xor_si256(c2[6448],_mm256_xor_si256(c2[3540],_mm256_xor_si256(c2[6710],_mm256_xor_si256(c2[6974],_mm256_xor_si256(c2[7251],_mm256_xor_si256(c2[7252],_mm256_xor_si256(c2[7516],_mm256_xor_si256(c2[8044],_mm256_xor_si256(c2[8308],_mm256_xor_si256(c2[2248],_mm256_xor_si256(c2[664],_mm256_xor_si256(c2[3040],_mm256_xor_si256(c2[3304],_mm256_xor_si256(c2[3313],_mm256_xor_si256(c2[4637],_mm256_xor_si256(c2[410],_mm256_xor_si256(c2[674],_mm256_xor_si256(c2[156],_mm256_xor_si256(c2[685],_mm256_xor_si256(c2[949],_mm256_xor_si256(c2[4121],_mm256_xor_si256(c2[4385],_mm256_xor_si256(c2[5449],_mm256_xor_si256(c2[4923],_mm256_xor_si256(c2[5187],_mm256_xor_si256(c2[3865],_mm256_xor_si256(c2[4129],_mm256_xor_si256(c2[4933],_mm256_xor_si256(c2[8103],_mm256_xor_si256(c2[4142],_mm256_xor_si256(c2[4406],_mm256_xor_si256(c2[1516],_mm256_xor_si256(c2[7853],_mm256_xor_si256(c2[2836],_mm256_xor_si256(c2[3100],_mm256_xor_si256(c2[3640],_mm256_xor_si256(c2[7864],_mm256_xor_si256(c2[8128],_mm256_xor_si256(c2[1792],_mm256_xor_si256(c2[2056],_mm256_xor_si256(c2[3650],_mm256_xor_si256(c2[2858],_mm256_xor_si256(c2[3122],_mm256_xor_si256(c2[2595],_mm256_xor_si256(c2[2859],_mm256_xor_si256(c2[4188],_mm256_xor_si256(c2[1817],_mm256_xor_si256(c2[2077],_mm256_xor_si256(c2[2341],_mm256_xor_si256(c2[1565],_mm256_xor_si256(c2[2089],_mm256_xor_si256(c2[2353],_mm256_xor_si256(c2[506],_mm256_xor_si256(c2[770],_mm256_xor_si256(c2[5801],_mm256_xor_si256(c2[3160],_mm256_xor_si256(c2[8441],c2[252]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 43
d2[258]=_mm256_xor_si256(c2[7394],_mm256_xor_si256(c2[5545],_mm256_xor_si256(c2[5813],_mm256_xor_si256(c2[7393],_mm256_xor_si256(c2[7657],_mm256_xor_si256(c2[7409],_mm256_xor_si256(c2[805],_mm256_xor_si256(c2[8197],_mm256_xor_si256(c2[14],_mm256_xor_si256(c2[4503],_mm256_xor_si256(c2[7152],_mm256_xor_si256(c2[5569],_mm256_xor_si256(c2[4515],_mm256_xor_si256(c2[6904],_mm256_xor_si256(c2[4789],_mm256_xor_si256(c2[2153],_mm256_xor_si256(c2[2417],_mm256_xor_si256(c2[2426],_mm256_xor_si256(c2[5595],_mm256_xor_si256(c2[7177],_mm256_xor_si256(c2[7441],_mm256_xor_si256(c2[7984],_mm256_xor_si256(c2[6663],_mm256_xor_si256(c2[2437],_mm256_xor_si256(c2[336],_mm256_xor_si256(c2[2716],_mm256_xor_si256(c2[4037],_mm256_xor_si256(c2[4301],_mm256_xor_si256(c2[5367],_mm256_xor_si256(c2[5365],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[616],_mm256_xor_si256(c2[5379],_mm256_xor_si256(c2[2476],_mm256_xor_si256(c2[97],_mm256_xor_si256(c2[361],_mm256_xor_si256(c2[1695],_mm256_xor_si256(c2[7240],_mm256_xor_si256(c2[2221],_mm256_xor_si256(c2[2498],_mm256_xor_si256(c2[2763],_mm256_xor_si256(c2[3291],_mm256_xor_si256(c2[3555],_mm256_xor_si256(c2[5942],_mm256_xor_si256(c2[4358],_mm256_xor_si256(c2[6734],_mm256_xor_si256(c2[6998],_mm256_xor_si256(c2[7013],_mm256_xor_si256(c2[8331],_mm256_xor_si256(c2[4104],_mm256_xor_si256(c2[4368],_mm256_xor_si256(c2[3856],_mm256_xor_si256(c2[4649],_mm256_xor_si256(c2[7815],_mm256_xor_si256(c2[8079],_mm256_xor_si256(c2[696],_mm256_xor_si256(c2[434],_mm256_xor_si256(c2[7565],_mm256_xor_si256(c2[7829],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[3350],_mm256_xor_si256(c2[8100],_mm256_xor_si256(c2[5210],_mm256_xor_si256(c2[3100],_mm256_xor_si256(c2[6530],_mm256_xor_si256(c2[6794],_mm256_xor_si256(c2[1252],_mm256_xor_si256(c2[7334],_mm256_xor_si256(c2[3375],_mm256_xor_si256(c2[5486],_mm256_xor_si256(c2[5750],_mm256_xor_si256(c2[7344],_mm256_xor_si256(c2[6816],_mm256_xor_si256(c2[6289],_mm256_xor_si256(c2[6553],_mm256_xor_si256(c2[4971],_mm256_xor_si256(c2[7888],_mm256_xor_si256(c2[5511],_mm256_xor_si256(c2[6041],_mm256_xor_si256(c2[5259],_mm256_xor_si256(c2[6053],_mm256_xor_si256(c2[4200],_mm256_xor_si256(c2[4464],_mm256_xor_si256(c2[1048],_mm256_xor_si256(c2[6854],_mm256_xor_si256(c2[3688],c2[3952]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 44
d2[264]=_mm256_xor_si256(c2[1320],_mm256_xor_si256(c2[7924],_mm256_xor_si256(c2[8186],_mm256_xor_si256(c2[1589],_mm256_xor_si256(c2[4226],_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[3184],_mm256_xor_si256(c2[2393],_mm256_xor_si256(c2[1084],_mm256_xor_si256(c2[7948],_mm256_xor_si256(c2[6888],_mm256_xor_si256(c2[830],_mm256_xor_si256(c2[7168],_mm256_xor_si256(c2[4790],_mm256_xor_si256(c2[4805],_mm256_xor_si256(c2[7968],_mm256_xor_si256(c2[1373],_mm256_xor_si256(c2[1910],_mm256_xor_si256(c2[589],_mm256_xor_si256(c2[4816],_mm256_xor_si256(c2[2715],_mm256_xor_si256(c2[5089],_mm256_xor_si256(c2[6674],_mm256_xor_si256(c2[7740],_mm256_xor_si256(c2[7744],_mm256_xor_si256(c2[2989],_mm256_xor_si256(c2[3782],_mm256_xor_si256(c2[7752],_mm256_xor_si256(c2[4849],_mm256_xor_si256(c2[2740],_mm256_xor_si256(c2[4068],_mm256_xor_si256(c2[1166],_mm256_xor_si256(c2[4600],_mm256_xor_si256(c2[905],_mm256_xor_si256(c2[4877],_mm256_xor_si256(c2[5136],_mm256_xor_si256(c2[5928],_mm256_xor_si256(c2[8321],_mm256_xor_si256(c2[6737],_mm256_xor_si256(c2[924],_mm256_xor_si256(c2[939],_mm256_xor_si256(c2[2257],_mm256_xor_si256(c2[6747],_mm256_xor_si256(c2[6229],_mm256_xor_si256(c2[7022],_mm256_xor_si256(c2[2005],_mm256_xor_si256(c2[3075],_mm256_xor_si256(c2[2813],_mm256_xor_si256(c2[1755],_mm256_xor_si256(c2[2559],_mm256_xor_si256(c2[5729],_mm256_xor_si256(c2[2032],_mm256_xor_si256(c2[7589],_mm256_xor_si256(c2[5473],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[1260],_mm256_xor_si256(c2[5748],_mm256_xor_si256(c2[8129],_mm256_xor_si256(c2[1276],_mm256_xor_si256(c2[748],_mm256_xor_si256(c2[485],_mm256_xor_si256(c2[1814],_mm256_xor_si256(c2[7884],_mm256_xor_si256(c2[8414],_mm256_xor_si256(c2[7632],_mm256_xor_si256(c2[8426],_mm256_xor_si256(c2[6843],_mm256_xor_si256(c2[3421],_mm256_xor_si256(c2[780],c2[6325])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 45
d2[270]=_mm256_xor_si256(c2[1864],_mm256_xor_si256(c2[5620],c2[4080]));
}
}
#include "PHY/sse_intrin.h"
// generated code for Zc=208, byte encoding
static inline void ldpc208_byte(uint8_t *c,uint8_t *d) {
__m128i *csimd=(__m128i *)c,*dsimd=(__m128i *)d;
__m128i *c2,*d2;
int i2;
for (i2=0; i2<13; i2++) {
c2=&csimd[i2];
d2=&dsimd[i2];
//row: 0
d2[0]=_mm_xor_si128(c2[4010],_mm_xor_si128(c2[7443],_mm_xor_si128(c2[6293],_mm_xor_si128(c2[6298],_mm_xor_si128(c2[4036],_mm_xor_si128(c2[6898],_mm_xor_si128(c2[7468],_mm_xor_si128(c2[4062],_mm_xor_si128(c2[1203],_mm_xor_si128(c2[6923],_mm_xor_si128(c2[4088],_mm_xor_si128(c2[1795],_mm_xor_si128(c2[4662],_mm_xor_si128(c2[4114],_mm_xor_si128(c2[6400],_mm_xor_si128(c2[4680],_mm_xor_si128(c2[4140],_mm_xor_si128(c2[709],_mm_xor_si128(c2[6428],_mm_xor_si128(c2[4166],_mm_xor_si128(c2[7022],_mm_xor_si128(c2[4741],_mm_xor_si128(c2[4192],_mm_xor_si128(c2[4195],_mm_xor_si128(c2[7053],_mm_xor_si128(c2[4218],_mm_xor_si128(c2[7652],_mm_xor_si128(c2[7650],_mm_xor_si128(c2[4244],_mm_xor_si128(c2[5388],_mm_xor_si128(c2[807],_mm_xor_si128(c2[4270],_mm_xor_si128(c2[5985],_mm_xor_si128(c2[8270],_mm_xor_si128(c2[4296],_mm_xor_si128(c2[4297],_mm_xor_si128(c2[6017],_mm_xor_si128(c2[4322],_mm_xor_si128(c2[2038],_mm_xor_si128(c2[887],_mm_xor_si128(c2[4348],_mm_xor_si128(c2[1485],_mm_xor_si128(c2[8357],_mm_xor_si128(c2[4374],_mm_xor_si128(c2[2088],_mm_xor_si128(c2[7234],_mm_xor_si128(c2[4400],_mm_xor_si128(c2[7832],_mm_xor_si128(c2[7265],_mm_xor_si128(c2[4426],_mm_xor_si128(c2[3284],_mm_xor_si128(c2[2144],_mm_xor_si128(c2[4452],_mm_xor_si128(c2[3883],_mm_xor_si128(c2[2734],_mm_xor_si128(c2[4478],_mm_xor_si128(c2[6192],_mm_xor_si128(c2[9048],_mm_xor_si128(c2[4504],_mm_xor_si128(c2[9077],_mm_xor_si128(c2[1075],_mm_xor_si128(c2[4530],_mm_xor_si128(c2[5678],_mm_xor_si128(c2[5674],_mm_xor_si128(c2[4556],_mm_xor_si128(c2[3986],c2[3408]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 1
d2[13]=_mm_xor_si128(c2[0],_mm_xor_si128(c2[4010],_mm_xor_si128(c2[7443],_mm_xor_si128(c2[6293],_mm_xor_si128(c2[6298],_mm_xor_si128(c2[26],_mm_xor_si128(c2[4036],_mm_xor_si128(c2[6898],_mm_xor_si128(c2[7468],_mm_xor_si128(c2[52],_mm_xor_si128(c2[4062],_mm_xor_si128(c2[1203],_mm_xor_si128(c2[6923],_mm_xor_si128(c2[78],_mm_xor_si128(c2[4088],_mm_xor_si128(c2[1795],_mm_xor_si128(c2[4662],_mm_xor_si128(c2[4114],_mm_xor_si128(c2[6400],_mm_xor_si128(c2[4680],_mm_xor_si128(c2[130],_mm_xor_si128(c2[4140],_mm_xor_si128(c2[709],_mm_xor_si128(c2[6428],_mm_xor_si128(c2[156],_mm_xor_si128(c2[4166],_mm_xor_si128(c2[7022],_mm_xor_si128(c2[4741],_mm_xor_si128(c2[4192],_mm_xor_si128(c2[4195],_mm_xor_si128(c2[7053],_mm_xor_si128(c2[4218],_mm_xor_si128(c2[7652],_mm_xor_si128(c2[7650],_mm_xor_si128(c2[234],_mm_xor_si128(c2[4244],_mm_xor_si128(c2[5388],_mm_xor_si128(c2[807],_mm_xor_si128(c2[260],_mm_xor_si128(c2[4270],_mm_xor_si128(c2[5985],_mm_xor_si128(c2[8270],_mm_xor_si128(c2[286],_mm_xor_si128(c2[4296],_mm_xor_si128(c2[4297],_mm_xor_si128(c2[6017],_mm_xor_si128(c2[312],_mm_xor_si128(c2[4322],_mm_xor_si128(c2[2038],_mm_xor_si128(c2[887],_mm_xor_si128(c2[338],_mm_xor_si128(c2[4348],_mm_xor_si128(c2[1485],_mm_xor_si128(c2[8357],_mm_xor_si128(c2[4374],_mm_xor_si128(c2[2088],_mm_xor_si128(c2[7234],_mm_xor_si128(c2[390],_mm_xor_si128(c2[4400],_mm_xor_si128(c2[7832],_mm_xor_si128(c2[7265],_mm_xor_si128(c2[416],_mm_xor_si128(c2[4426],_mm_xor_si128(c2[3284],_mm_xor_si128(c2[2144],_mm_xor_si128(c2[4452],_mm_xor_si128(c2[3883],_mm_xor_si128(c2[2734],_mm_xor_si128(c2[468],_mm_xor_si128(c2[4478],_mm_xor_si128(c2[6192],_mm_xor_si128(c2[9048],_mm_xor_si128(c2[494],_mm_xor_si128(c2[4504],_mm_xor_si128(c2[9077],_mm_xor_si128(c2[1075],_mm_xor_si128(c2[520],_mm_xor_si128(c2[4530],_mm_xor_si128(c2[5678],_mm_xor_si128(c2[5674],_mm_xor_si128(c2[546],_mm_xor_si128(c2[4556],_mm_xor_si128(c2[3986],c2[3408])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 2
d2[26]=_mm_xor_si128(c2[4010],_mm_xor_si128(c2[7443],_mm_xor_si128(c2[2296],_mm_xor_si128(c2[6293],_mm_xor_si128(c2[2288],_mm_xor_si128(c2[6298],_mm_xor_si128(c2[4036],_mm_xor_si128(c2[2888],_mm_xor_si128(c2[6898],_mm_xor_si128(c2[3458],_mm_xor_si128(c2[7468],_mm_xor_si128(c2[4062],_mm_xor_si128(c2[1203],_mm_xor_si128(c2[2913],_mm_xor_si128(c2[6923],_mm_xor_si128(c2[4088],_mm_xor_si128(c2[1795],_mm_xor_si128(c2[652],_mm_xor_si128(c2[4662],_mm_xor_si128(c2[4114],_mm_xor_si128(c2[2403],_mm_xor_si128(c2[6400],_mm_xor_si128(c2[683],_mm_xor_si128(c2[4680],_mm_xor_si128(c2[4140],_mm_xor_si128(c2[709],_mm_xor_si128(c2[2418],_mm_xor_si128(c2[6428],_mm_xor_si128(c2[4166],_mm_xor_si128(c2[3025],_mm_xor_si128(c2[7022],_mm_xor_si128(c2[731],_mm_xor_si128(c2[4741],_mm_xor_si128(c2[4192],_mm_xor_si128(c2[185],_mm_xor_si128(c2[4195],_mm_xor_si128(c2[3043],_mm_xor_si128(c2[7053],_mm_xor_si128(c2[4218],_mm_xor_si128(c2[3642],_mm_xor_si128(c2[7652],_mm_xor_si128(c2[3640],_mm_xor_si128(c2[7650],_mm_xor_si128(c2[4244],_mm_xor_si128(c2[5388],_mm_xor_si128(c2[5961],_mm_xor_si128(c2[807],_mm_xor_si128(c2[4270],_mm_xor_si128(c2[1988],_mm_xor_si128(c2[5985],_mm_xor_si128(c2[4273],_mm_xor_si128(c2[8270],_mm_xor_si128(c2[4296],_mm_xor_si128(c2[4297],_mm_xor_si128(c2[2007],_mm_xor_si128(c2[6017],_mm_xor_si128(c2[4322],_mm_xor_si128(c2[2038],_mm_xor_si128(c2[6041],_mm_xor_si128(c2[887],_mm_xor_si128(c2[4348],_mm_xor_si128(c2[6639],_mm_xor_si128(c2[1485],_mm_xor_si128(c2[4347],_mm_xor_si128(c2[8357],_mm_xor_si128(c2[4374],_mm_xor_si128(c2[7229],_mm_xor_si128(c2[2088],_mm_xor_si128(c2[3224],_mm_xor_si128(c2[7234],_mm_xor_si128(c2[4400],_mm_xor_si128(c2[7832],_mm_xor_si128(c2[3255],_mm_xor_si128(c2[7265],_mm_xor_si128(c2[4426],_mm_xor_si128(c2[3284],_mm_xor_si128(c2[7285],_mm_xor_si128(c2[2144],_mm_xor_si128(c2[4452],_mm_xor_si128(c2[9024],_mm_xor_si128(c2[3883],_mm_xor_si128(c2[7888],_mm_xor_si128(c2[2734],_mm_xor_si128(c2[4478],_mm_xor_si128(c2[2195],_mm_xor_si128(c2[6192],_mm_xor_si128(c2[5051],_mm_xor_si128(c2[9048],_mm_xor_si128(c2[4504],_mm_xor_si128(c2[9077],_mm_xor_si128(c2[6216],_mm_xor_si128(c2[1075],_mm_xor_si128(c2[4530],_mm_xor_si128(c2[1668],_mm_xor_si128(c2[5678],_mm_xor_si128(c2[1664],_mm_xor_si128(c2[5674],_mm_xor_si128(c2[4556],_mm_xor_si128(c2[3986],_mm_xor_si128(c2[8562],c2[3408]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 3
d2[39]=_mm_xor_si128(c2[4010],_mm_xor_si128(c2[7443],_mm_xor_si128(c2[6293],_mm_xor_si128(c2[2288],_mm_xor_si128(c2[6298],_mm_xor_si128(c2[4036],_mm_xor_si128(c2[6898],_mm_xor_si128(c2[3458],_mm_xor_si128(c2[7468],_mm_xor_si128(c2[4062],_mm_xor_si128(c2[1203],_mm_xor_si128(c2[6923],_mm_xor_si128(c2[4088],_mm_xor_si128(c2[1795],_mm_xor_si128(c2[652],_mm_xor_si128(c2[4662],_mm_xor_si128(c2[4114],_mm_xor_si128(c2[6400],_mm_xor_si128(c2[683],_mm_xor_si128(c2[4680],_mm_xor_si128(c2[4140],_mm_xor_si128(c2[709],_mm_xor_si128(c2[6428],_mm_xor_si128(c2[4166],_mm_xor_si128(c2[7022],_mm_xor_si128(c2[731],_mm_xor_si128(c2[4741],_mm_xor_si128(c2[4192],_mm_xor_si128(c2[4195],_mm_xor_si128(c2[3043],_mm_xor_si128(c2[7053],_mm_xor_si128(c2[4218],_mm_xor_si128(c2[7652],_mm_xor_si128(c2[3640],_mm_xor_si128(c2[7650],_mm_xor_si128(c2[4244],_mm_xor_si128(c2[5388],_mm_xor_si128(c2[807],_mm_xor_si128(c2[4270],_mm_xor_si128(c2[5985],_mm_xor_si128(c2[4273],_mm_xor_si128(c2[8270],_mm_xor_si128(c2[4296],_mm_xor_si128(c2[4297],_mm_xor_si128(c2[2007],_mm_xor_si128(c2[6017],_mm_xor_si128(c2[4322],_mm_xor_si128(c2[2038],_mm_xor_si128(c2[6041],_mm_xor_si128(c2[887],_mm_xor_si128(c2[4348],_mm_xor_si128(c2[1485],_mm_xor_si128(c2[4347],_mm_xor_si128(c2[8357],_mm_xor_si128(c2[4374],_mm_xor_si128(c2[2088],_mm_xor_si128(c2[3224],_mm_xor_si128(c2[7234],_mm_xor_si128(c2[4400],_mm_xor_si128(c2[7832],_mm_xor_si128(c2[7265],_mm_xor_si128(c2[4426],_mm_xor_si128(c2[3284],_mm_xor_si128(c2[7285],_mm_xor_si128(c2[2144],_mm_xor_si128(c2[4452],_mm_xor_si128(c2[3883],_mm_xor_si128(c2[7888],_mm_xor_si128(c2[2734],_mm_xor_si128(c2[4478],_mm_xor_si128(c2[6192],_mm_xor_si128(c2[5051],_mm_xor_si128(c2[9048],_mm_xor_si128(c2[4504],_mm_xor_si128(c2[9077],_mm_xor_si128(c2[1075],_mm_xor_si128(c2[4530],_mm_xor_si128(c2[5678],_mm_xor_si128(c2[1664],_mm_xor_si128(c2[5674],_mm_xor_si128(c2[4556],_mm_xor_si128(c2[3986],_mm_xor_si128(c2[8562],c2[3408])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 4
d2[52]=_mm_xor_si128(c2[4577],c2[6902]);
//row: 5
d2[65]=_mm_xor_si128(c2[8590],_mm_xor_si128(c2[2872],_mm_xor_si128(c2[1722],_mm_xor_si128(c2[1727],_mm_xor_si128(c2[5159],_mm_xor_si128(c2[8616],_mm_xor_si128(c2[2314],_mm_xor_si128(c2[2897],_mm_xor_si128(c2[2320],_mm_xor_si128(c2[8642],_mm_xor_si128(c2[5783],_mm_xor_si128(c2[2352],_mm_xor_si128(c2[8668],_mm_xor_si128(c2[6375],_mm_xor_si128(c2[78],_mm_xor_si128(c2[4655],_mm_xor_si128(c2[8694],_mm_xor_si128(c2[1829],_mm_xor_si128(c2[109],_mm_xor_si128(c2[8720],_mm_xor_si128(c2[5289],_mm_xor_si128(c2[1857],_mm_xor_si128(c2[8746],_mm_xor_si128(c2[2451],_mm_xor_si128(c2[157],_mm_xor_si128(c2[8772],_mm_xor_si128(c2[8762],_mm_xor_si128(c2[2482],_mm_xor_si128(c2[8798],_mm_xor_si128(c2[3068],_mm_xor_si128(c2[3079],_mm_xor_si128(c2[8824],_mm_xor_si128(c2[817],_mm_xor_si128(c2[5387],_mm_xor_si128(c2[8850],_mm_xor_si128(c2[1414],_mm_xor_si128(c2[3699],_mm_xor_si128(c2[8876],_mm_xor_si128(c2[8877],_mm_xor_si128(c2[1433],_mm_xor_si128(c2[8902],_mm_xor_si128(c2[6605],_mm_xor_si128(c2[5467],_mm_xor_si128(c2[888],_mm_xor_si128(c2[8928],_mm_xor_si128(c2[6065],_mm_xor_si128(c2[3773],_mm_xor_si128(c2[8954],_mm_xor_si128(c2[6668],_mm_xor_si128(c2[2663],_mm_xor_si128(c2[8980],_mm_xor_si128(c2[3261],_mm_xor_si128(c2[2681],_mm_xor_si128(c2[9006],_mm_xor_si128(c2[7864],_mm_xor_si128(c2[6711],_mm_xor_si128(c2[9008],_mm_xor_si128(c2[9032],_mm_xor_si128(c2[8450],_mm_xor_si128(c2[7314],_mm_xor_si128(c2[9058],_mm_xor_si128(c2[1621],_mm_xor_si128(c2[4477],_mm_xor_si128(c2[9084],_mm_xor_si128(c2[4506],_mm_xor_si128(c2[5642],_mm_xor_si128(c2[9110],_mm_xor_si128(c2[1094],_mm_xor_si128(c2[1103],_mm_xor_si128(c2[9136],_mm_xor_si128(c2[8566],_mm_xor_si128(c2[7988],c2[1128]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 6
d2[78]=_mm_xor_si128(c2[3432],_mm_xor_si128(c2[6449],_mm_xor_si128(c2[1986],_mm_xor_si128(c2[1433],_mm_xor_si128(c2[341],_mm_xor_si128(c2[5019],_mm_xor_si128(c2[3902],c2[6817])))))));
//row: 7
d2[91]=_mm_xor_si128(c2[581],_mm_xor_si128(c2[4607],_mm_xor_si128(c2[111],_mm_xor_si128(c2[5339],_mm_xor_si128(c2[8797],c2[7232])))));
//row: 8
d2[104]=_mm_xor_si128(c2[5728],_mm_xor_si128(c2[6292],_mm_xor_si128(c2[10],_mm_xor_si128(c2[574],_mm_xor_si128(c2[8011],_mm_xor_si128(c2[4578],_mm_xor_si128(c2[8588],_mm_xor_si128(c2[8016],_mm_xor_si128(c2[4583],_mm_xor_si128(c2[8580],_mm_xor_si128(c2[6874],_mm_xor_si128(c2[5754],_mm_xor_si128(c2[6318],_mm_xor_si128(c2[8616],_mm_xor_si128(c2[5183],_mm_xor_si128(c2[29],_mm_xor_si128(c2[35],_mm_xor_si128(c2[5753],_mm_xor_si128(c2[599],_mm_xor_si128(c2[1170],_mm_xor_si128(c2[5780],_mm_xor_si128(c2[6344],_mm_xor_si128(c2[2921],_mm_xor_si128(c2[3485],_mm_xor_si128(c2[8641],_mm_xor_si128(c2[5208],_mm_xor_si128(c2[54],_mm_xor_si128(c2[5806],_mm_xor_si128(c2[6370],_mm_xor_si128(c2[3513],_mm_xor_si128(c2[4090],_mm_xor_si128(c2[6380],_mm_xor_si128(c2[2947],_mm_xor_si128(c2[6944],_mm_xor_si128(c2[1802],_mm_xor_si128(c2[5832],_mm_xor_si128(c2[6396],_mm_xor_si128(c2[8118],_mm_xor_si128(c2[4685],_mm_xor_si128(c2[8695],_mm_xor_si128(c2[6398],_mm_xor_si128(c2[2965],_mm_xor_si128(c2[6975],_mm_xor_si128(c2[5858],_mm_xor_si128(c2[6422],_mm_xor_si128(c2[2427],_mm_xor_si128(c2[2991],_mm_xor_si128(c2[8146],_mm_xor_si128(c2[4713],_mm_xor_si128(c2[8710],_mm_xor_si128(c2[5884],_mm_xor_si128(c2[6448],_mm_xor_si128(c2[8740],_mm_xor_si128(c2[5307],_mm_xor_si128(c2[166],_mm_xor_si128(c2[6459],_mm_xor_si128(c2[3026],_mm_xor_si128(c2[7023],_mm_xor_si128(c2[5910],_mm_xor_si128(c2[6474],_mm_xor_si128(c2[5913],_mm_xor_si128(c2[2480],_mm_xor_si128(c2[6477],_mm_xor_si128(c2[8771],_mm_xor_si128(c2[5338],_mm_xor_si128(c2[184],_mm_xor_si128(c2[5936],_mm_xor_si128(c2[6500],_mm_xor_si128(c2[219],_mm_xor_si128(c2[5937],_mm_xor_si128(c2[783],_mm_xor_si128(c2[217],_mm_xor_si128(c2[5935],_mm_xor_si128(c2[781],_mm_xor_si128(c2[5962],_mm_xor_si128(c2[6526],_mm_xor_si128(c2[7106],_mm_xor_si128(c2[7670],_mm_xor_si128(c2[2525],_mm_xor_si128(c2[8243],_mm_xor_si128(c2[3102],_mm_xor_si128(c2[5988],_mm_xor_si128(c2[6552],_mm_xor_si128(c2[7703],_mm_xor_si128(c2[4270],_mm_xor_si128(c2[8280],_mm_xor_si128(c2[837],_mm_xor_si128(c2[6555],_mm_xor_si128(c2[1414],_mm_xor_si128(c2[6014],_mm_xor_si128(c2[6578],_mm_xor_si128(c2[6015],_mm_xor_si128(c2[6579],_mm_xor_si128(c2[7722],_mm_xor_si128(c2[4302],_mm_xor_si128(c2[8299],_mm_xor_si128(c2[6040],_mm_xor_si128(c2[6604],_mm_xor_si128(c2[3756],_mm_xor_si128(c2[4320],_mm_xor_si128(c2[2605],_mm_xor_si128(c2[8323],_mm_xor_si128(c2[3182],_mm_xor_si128(c2[7756],_mm_xor_si128(c2[6066],_mm_xor_si128(c2[6630],_mm_xor_si128(c2[3203],_mm_xor_si128(c2[8921],_mm_xor_si128(c2[3780],_mm_xor_si128(c2[911],_mm_xor_si128(c2[6642],_mm_xor_si128(c2[1488],_mm_xor_si128(c2[6092],_mm_xor_si128(c2[6656],_mm_xor_si128(c2[3806],_mm_xor_si128(c2[373],_mm_xor_si128(c2[4370],_mm_xor_si128(c2[8952],_mm_xor_si128(c2[5519],_mm_xor_si128(c2[365],_mm_xor_si128(c2[6118],_mm_xor_si128(c2[6682],_mm_xor_si128(c2[399],_mm_xor_si128(c2[963],_mm_xor_si128(c2[8970],_mm_xor_si128(c2[5550],_mm_xor_si128(c2[396],_mm_xor_si128(c2[6144],_mm_xor_si128(c2[6708],_mm_xor_si128(c2[5002],_mm_xor_si128(c2[5566],_mm_xor_si128(c2[3849],_mm_xor_si128(c2[416],_mm_xor_si128(c2[4426],_mm_xor_si128(c2[422],_mm_xor_si128(c2[6170],_mm_xor_si128(c2[6734],_mm_xor_si128(c2[5601],_mm_xor_si128(c2[2168],_mm_xor_si128(c2[6165],_mm_xor_si128(c2[4452],_mm_xor_si128(c2[1019],_mm_xor_si128(c2[5029],_mm_xor_si128(c2[6196],_mm_xor_si128(c2[6760],_mm_xor_si128(c2[7910],_mm_xor_si128(c2[4477],_mm_xor_si128(c2[8487],_mm_xor_si128(c2[1615],_mm_xor_si128(c2[7333],_mm_xor_si128(c2[2192],_mm_xor_si128(c2[6222],_mm_xor_si128(c2[6786],_mm_xor_si128(c2[1644],_mm_xor_si128(c2[2221],_mm_xor_si128(c2[2793],_mm_xor_si128(c2[8511],_mm_xor_si128(c2[3357],_mm_xor_si128(c2[2216],_mm_xor_si128(c2[6248],_mm_xor_si128(c2[6812],_mm_xor_si128(c2[7396],_mm_xor_si128(c2[3963],_mm_xor_si128(c2[7960],_mm_xor_si128(c2[7392],_mm_xor_si128(c2[3959],_mm_xor_si128(c2[7956],_mm_xor_si128(c2[6274],_mm_xor_si128(c2[6838],_mm_xor_si128(c2[5704],_mm_xor_si128(c2[6268],_mm_xor_si128(c2[5126],_mm_xor_si128(c2[1693],_mm_xor_si128(c2[5703],c2[3412]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 9
d2[117]=_mm_xor_si128(c2[3432],_mm_xor_si128(c2[5746],_mm_xor_si128(c2[841],_mm_xor_si128(c2[3149],_mm_xor_si128(c2[5498],_mm_xor_si128(c2[2730],_mm_xor_si128(c2[2766],c2[7966])))))));
//row: 10
d2[130]=_mm_xor_si128(c2[8041],_mm_xor_si128(c2[7492],_mm_xor_si128(c2[6977],_mm_xor_si128(c2[183],_mm_xor_si128(c2[7072],c2[3800])))));
//row: 11
d2[143]=_mm_xor_si128(c2[2288],_mm_xor_si128(c2[6871],_mm_xor_si128(c2[1717],_mm_xor_si128(c2[5721],_mm_xor_si128(c2[5150],_mm_xor_si128(c2[4584],_mm_xor_si128(c2[4013],_mm_xor_si128(c2[4576],_mm_xor_si128(c2[4005],_mm_xor_si128(c2[4587],_mm_xor_si128(c2[2314],_mm_xor_si128(c2[6897],_mm_xor_si128(c2[1743],_mm_xor_si128(c2[5176],_mm_xor_si128(c2[4605],_mm_xor_si128(c2[5746],_mm_xor_si128(c2[5175],_mm_xor_si128(c2[1182],_mm_xor_si128(c2[2340],_mm_xor_si128(c2[6923],_mm_xor_si128(c2[1769],_mm_xor_si128(c2[8632],_mm_xor_si128(c2[8061],_mm_xor_si128(c2[5201],_mm_xor_si128(c2[4630],_mm_xor_si128(c2[2366],_mm_xor_si128(c2[6949],_mm_xor_si128(c2[1795],_mm_xor_si128(c2[86],_mm_xor_si128(c2[8666],_mm_xor_si128(c2[2940],_mm_xor_si128(c2[2369],_mm_xor_si128(c2[2392],_mm_xor_si128(c2[1821],_mm_xor_si128(c2[4691],_mm_xor_si128(c2[4120],_mm_xor_si128(c2[2971],_mm_xor_si128(c2[2400],_mm_xor_si128(c2[2418],_mm_xor_si128(c2[7001],_mm_xor_si128(c2[1847],_mm_xor_si128(c2[8138],_mm_xor_si128(c2[7567],_mm_xor_si128(c2[4706],_mm_xor_si128(c2[4135],_mm_xor_si128(c2[2444],_mm_xor_si128(c2[7027],_mm_xor_si128(c2[1873],_mm_xor_si128(c2[5313],_mm_xor_si128(c2[4742],_mm_xor_si128(c2[3019],_mm_xor_si128(c2[2448],_mm_xor_si128(c2[2470],_mm_xor_si128(c2[1899],_mm_xor_si128(c2[2473],_mm_xor_si128(c2[1902],_mm_xor_si128(c2[5331],_mm_xor_si128(c2[4760],_mm_xor_si128(c2[2496],_mm_xor_si128(c2[1925],_mm_xor_si128(c2[5930],_mm_xor_si128(c2[5359],_mm_xor_si128(c2[5928],_mm_xor_si128(c2[5357],_mm_xor_si128(c2[2522],_mm_xor_si128(c2[7105],_mm_xor_si128(c2[1951],_mm_xor_si128(c2[3666],_mm_xor_si128(c2[3095],_mm_xor_si128(c2[8249],_mm_xor_si128(c2[7678],_mm_xor_si128(c2[2548],_mm_xor_si128(c2[7131],_mm_xor_si128(c2[1977],_mm_xor_si128(c2[4276],_mm_xor_si128(c2[3692],_mm_xor_si128(c2[6561],_mm_xor_si128(c2[5990],_mm_xor_si128(c2[2574],_mm_xor_si128(c2[7157],_mm_xor_si128(c2[2003],_mm_xor_si128(c2[2575],_mm_xor_si128(c2[2004],_mm_xor_si128(c2[4295],_mm_xor_si128(c2[3724],_mm_xor_si128(c2[2600],_mm_xor_si128(c2[7183],_mm_xor_si128(c2[2029],_mm_xor_si128(c2[316],_mm_xor_si128(c2[8896],_mm_xor_si128(c2[8329],_mm_xor_si128(c2[7758],_mm_xor_si128(c2[6611],_mm_xor_si128(c2[2626],_mm_xor_si128(c2[7209],_mm_xor_si128(c2[2055],_mm_xor_si128(c2[8927],_mm_xor_si128(c2[8356],_mm_xor_si128(c2[6635],_mm_xor_si128(c2[6064],_mm_xor_si128(c2[2652],_mm_xor_si128(c2[2081],_mm_xor_si128(c2[366],_mm_xor_si128(c2[8946],_mm_xor_si128(c2[5512],_mm_xor_si128(c2[4941],_mm_xor_si128(c2[2678],_mm_xor_si128(c2[7261],_mm_xor_si128(c2[2107],_mm_xor_si128(c2[6110],_mm_xor_si128(c2[5539],_mm_xor_si128(c2[5543],_mm_xor_si128(c2[4972],_mm_xor_si128(c2[2704],_mm_xor_si128(c2[7287],_mm_xor_si128(c2[2133],_mm_xor_si128(c2[1562],_mm_xor_si128(c2[991],_mm_xor_si128(c2[422],_mm_xor_si128(c2[9002],_mm_xor_si128(c2[417],_mm_xor_si128(c2[2730],_mm_xor_si128(c2[2159],_mm_xor_si128(c2[2161],_mm_xor_si128(c2[1590],_mm_xor_si128(c2[1025],_mm_xor_si128(c2[454],_mm_xor_si128(c2[2756],_mm_xor_si128(c2[7339],_mm_xor_si128(c2[2185],_mm_xor_si128(c2[4483],_mm_xor_si128(c2[3912],_mm_xor_si128(c2[7339],_mm_xor_si128(c2[6768],_mm_xor_si128(c2[2782],_mm_xor_si128(c2[7365],_mm_xor_si128(c2[2211],_mm_xor_si128(c2[7368],_mm_xor_si128(c2[6797],_mm_xor_si128(c2[8504],_mm_xor_si128(c2[7933],_mm_xor_si128(c2[2808],_mm_xor_si128(c2[7391],_mm_xor_si128(c2[2237],_mm_xor_si128(c2[3956],_mm_xor_si128(c2[3385],_mm_xor_si128(c2[3952],_mm_xor_si128(c2[3381],_mm_xor_si128(c2[2834],_mm_xor_si128(c2[7417],_mm_xor_si128(c2[2263],_mm_xor_si128(c2[2264],_mm_xor_si128(c2[1693],_mm_xor_si128(c2[1699],_mm_xor_si128(c2[1128],c2[5128])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 12
d2[156]=_mm_xor_si128(c2[3432],_mm_xor_si128(c2[2315],_mm_xor_si128(c2[6564],_mm_xor_si128(c2[5443],_mm_xor_si128(c2[4920],c2[9060])))));
//row: 13
d2[169]=_mm_xor_si128(c2[8010],_mm_xor_si128(c2[2869],_mm_xor_si128(c2[6302],_mm_xor_si128(c2[5152],_mm_xor_si128(c2[5157],_mm_xor_si128(c2[2291],_mm_xor_si128(c2[8036],_mm_xor_si128(c2[2895],_mm_xor_si128(c2[5757],_mm_xor_si128(c2[6327],_mm_xor_si128(c2[8062],_mm_xor_si128(c2[2921],_mm_xor_si128(c2[62],_mm_xor_si128(c2[5782],_mm_xor_si128(c2[8088],_mm_xor_si128(c2[2947],_mm_xor_si128(c2[654],_mm_xor_si128(c2[3521],_mm_xor_si128(c2[1803],_mm_xor_si128(c2[2973],_mm_xor_si128(c2[5259],_mm_xor_si128(c2[3539],_mm_xor_si128(c2[8140],_mm_xor_si128(c2[2999],_mm_xor_si128(c2[8719],_mm_xor_si128(c2[5287],_mm_xor_si128(c2[8166],_mm_xor_si128(c2[3025],_mm_xor_si128(c2[5881],_mm_xor_si128(c2[3600],_mm_xor_si128(c2[3051],_mm_xor_si128(c2[3054],_mm_xor_si128(c2[5912],_mm_xor_si128(c2[754],_mm_xor_si128(c2[3077],_mm_xor_si128(c2[6511],_mm_xor_si128(c2[6509],_mm_xor_si128(c2[8244],_mm_xor_si128(c2[3103],_mm_xor_si128(c2[4247],_mm_xor_si128(c2[8817],_mm_xor_si128(c2[8270],_mm_xor_si128(c2[3129],_mm_xor_si128(c2[4844],_mm_xor_si128(c2[7129],_mm_xor_si128(c2[8296],_mm_xor_si128(c2[3155],_mm_xor_si128(c2[3156],_mm_xor_si128(c2[4863],_mm_xor_si128(c2[8322],_mm_xor_si128(c2[3181],_mm_xor_si128(c2[884],_mm_xor_si128(c2[8897],_mm_xor_si128(c2[8348],_mm_xor_si128(c2[3207],_mm_xor_si128(c2[344],_mm_xor_si128(c2[7203],_mm_xor_si128(c2[3233],_mm_xor_si128(c2[947],_mm_xor_si128(c2[6093],_mm_xor_si128(c2[8400],_mm_xor_si128(c2[3259],_mm_xor_si128(c2[6691],_mm_xor_si128(c2[6111],_mm_xor_si128(c2[8426],_mm_xor_si128(c2[3285],_mm_xor_si128(c2[2143],_mm_xor_si128(c2[990],_mm_xor_si128(c2[3311],_mm_xor_si128(c2[2742],_mm_xor_si128(c2[1593],_mm_xor_si128(c2[8478],_mm_xor_si128(c2[3337],_mm_xor_si128(c2[5051],_mm_xor_si128(c2[7907],_mm_xor_si128(c2[8504],_mm_xor_si128(c2[3363],_mm_xor_si128(c2[7936],_mm_xor_si128(c2[9085],_mm_xor_si128(c2[8530],_mm_xor_si128(c2[3389],_mm_xor_si128(c2[4524],_mm_xor_si128(c2[4533],_mm_xor_si128(c2[521],_mm_xor_si128(c2[8556],_mm_xor_si128(c2[3415],_mm_xor_si128(c2[2845],c2[2267])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 14
d2[182]=_mm_xor_si128(c2[572],_mm_xor_si128(c2[6044],_mm_xor_si128(c2[3829],_mm_xor_si128(c2[1568],_mm_xor_si128(c2[1014],c2[1690])))));
//row: 15
d2[195]=_mm_xor_si128(c2[2869],_mm_xor_si128(c2[6302],_mm_xor_si128(c2[5152],_mm_xor_si128(c2[1147],_mm_xor_si128(c2[5157],_mm_xor_si128(c2[7446],_mm_xor_si128(c2[2895],_mm_xor_si128(c2[5757],_mm_xor_si128(c2[2317],_mm_xor_si128(c2[6327],_mm_xor_si128(c2[3458],_mm_xor_si128(c2[2921],_mm_xor_si128(c2[62],_mm_xor_si128(c2[5782],_mm_xor_si128(c2[2947],_mm_xor_si128(c2[654],_mm_xor_si128(c2[8662],_mm_xor_si128(c2[3521],_mm_xor_si128(c2[2973],_mm_xor_si128(c2[5259],_mm_xor_si128(c2[8693],_mm_xor_si128(c2[3539],_mm_xor_si128(c2[2999],_mm_xor_si128(c2[8719],_mm_xor_si128(c2[5287],_mm_xor_si128(c2[3025],_mm_xor_si128(c2[5881],_mm_xor_si128(c2[8741],_mm_xor_si128(c2[3600],_mm_xor_si128(c2[3051],_mm_xor_si128(c2[3054],_mm_xor_si128(c2[1902],_mm_xor_si128(c2[5912],_mm_xor_si128(c2[3077],_mm_xor_si128(c2[6511],_mm_xor_si128(c2[2499],_mm_xor_si128(c2[6509],_mm_xor_si128(c2[3103],_mm_xor_si128(c2[4247],_mm_xor_si128(c2[8817],_mm_xor_si128(c2[3129],_mm_xor_si128(c2[4844],_mm_xor_si128(c2[3132],_mm_xor_si128(c2[7129],_mm_xor_si128(c2[837],_mm_xor_si128(c2[3155],_mm_xor_si128(c2[3156],_mm_xor_si128(c2[866],_mm_xor_si128(c2[4863],_mm_xor_si128(c2[3181],_mm_xor_si128(c2[884],_mm_xor_si128(c2[4900],_mm_xor_si128(c2[8897],_mm_xor_si128(c2[3207],_mm_xor_si128(c2[344],_mm_xor_si128(c2[3206],_mm_xor_si128(c2[7203],_mm_xor_si128(c2[3781],_mm_xor_si128(c2[3233],_mm_xor_si128(c2[947],_mm_xor_si128(c2[2083],_mm_xor_si128(c2[6093],_mm_xor_si128(c2[3259],_mm_xor_si128(c2[6691],_mm_xor_si128(c2[6111],_mm_xor_si128(c2[3285],_mm_xor_si128(c2[2143],_mm_xor_si128(c2[6144],_mm_xor_si128(c2[990],_mm_xor_si128(c2[3311],_mm_xor_si128(c2[2742],_mm_xor_si128(c2[6734],_mm_xor_si128(c2[1593],_mm_xor_si128(c2[3337],_mm_xor_si128(c2[5051],_mm_xor_si128(c2[3910],_mm_xor_si128(c2[7907],_mm_xor_si128(c2[3331],_mm_xor_si128(c2[3363],_mm_xor_si128(c2[7936],_mm_xor_si128(c2[9085],_mm_xor_si128(c2[3389],_mm_xor_si128(c2[4524],_mm_xor_si128(c2[523],_mm_xor_si128(c2[4533],_mm_xor_si128(c2[3415],_mm_xor_si128(c2[2845],_mm_xor_si128(c2[7421],c2[2267]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 16
d2[208]=_mm_xor_si128(c2[7440],_mm_xor_si128(c2[1722],_mm_xor_si128(c2[572],_mm_xor_si128(c2[577],_mm_xor_si128(c2[7466],_mm_xor_si128(c2[1177],_mm_xor_si128(c2[1747],_mm_xor_si128(c2[4607],_mm_xor_si128(c2[7492],_mm_xor_si128(c2[4633],_mm_xor_si128(c2[1202],_mm_xor_si128(c2[7518],_mm_xor_si128(c2[5238],_mm_xor_si128(c2[8092],_mm_xor_si128(c2[3522],_mm_xor_si128(c2[7544],_mm_xor_si128(c2[679],_mm_xor_si128(c2[8123],_mm_xor_si128(c2[7570],_mm_xor_si128(c2[4139],_mm_xor_si128(c2[707],_mm_xor_si128(c2[7596],_mm_xor_si128(c2[1301],_mm_xor_si128(c2[8171],_mm_xor_si128(c2[7622],_mm_xor_si128(c2[7625],_mm_xor_si128(c2[1332],_mm_xor_si128(c2[7648],_mm_xor_si128(c2[1931],_mm_xor_si128(c2[1929],_mm_xor_si128(c2[7674],_mm_xor_si128(c2[8818],_mm_xor_si128(c2[4250],_mm_xor_si128(c2[7700],_mm_xor_si128(c2[264],_mm_xor_si128(c2[2549],_mm_xor_si128(c2[7726],_mm_xor_si128(c2[7727],_mm_xor_si128(c2[296],_mm_xor_si128(c2[296],_mm_xor_si128(c2[7752],_mm_xor_si128(c2[5468],_mm_xor_si128(c2[4317],_mm_xor_si128(c2[7778],_mm_xor_si128(c2[4915],_mm_xor_si128(c2[2636],_mm_xor_si128(c2[7804],_mm_xor_si128(c2[5518],_mm_xor_si128(c2[1513],_mm_xor_si128(c2[7830],_mm_xor_si128(c2[2111],_mm_xor_si128(c2[1544],_mm_xor_si128(c2[7856],_mm_xor_si128(c2[6714],_mm_xor_si128(c2[5574],_mm_xor_si128(c2[7882],_mm_xor_si128(c2[7313],_mm_xor_si128(c2[6164],_mm_xor_si128(c2[7908],_mm_xor_si128(c2[471],_mm_xor_si128(c2[3340],_mm_xor_si128(c2[7934],_mm_xor_si128(c2[3356],_mm_xor_si128(c2[4505],_mm_xor_si128(c2[7960],_mm_xor_si128(c2[9108],_mm_xor_si128(c2[9104],_mm_xor_si128(c2[6247],_mm_xor_si128(c2[7986],_mm_xor_si128(c2[7416],c2[6838]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 17
d2[221]=_mm_xor_si128(c2[6297],_mm_xor_si128(c2[4951],_mm_xor_si128(c2[8425],_mm_xor_si128(c2[2158],c2[6847]))));
//row: 18
d2[234]=_mm_xor_si128(c2[598],_mm_xor_si128(c2[5462],_mm_xor_si128(c2[4352],_mm_xor_si128(c2[2760],c2[2791]))));
//row: 19
d2[247]=_mm_xor_si128(c2[6864],_mm_xor_si128(c2[3458],_mm_xor_si128(c2[3624],_mm_xor_si128(c2[4795],c2[8851]))));
//row: 20
d2[260]=_mm_xor_si128(c2[2868],_mm_xor_si128(c2[6301],_mm_xor_si128(c2[5151],_mm_xor_si128(c2[5156],_mm_xor_si128(c2[3432],_mm_xor_si128(c2[2894],_mm_xor_si128(c2[5756],_mm_xor_si128(c2[6326],_mm_xor_si128(c2[2920],_mm_xor_si128(c2[61],_mm_xor_si128(c2[5781],_mm_xor_si128(c2[2946],_mm_xor_si128(c2[653],_mm_xor_si128(c2[3520],_mm_xor_si128(c2[6942],_mm_xor_si128(c2[2972],_mm_xor_si128(c2[5258],_mm_xor_si128(c2[3538],_mm_xor_si128(c2[2998],_mm_xor_si128(c2[8718],_mm_xor_si128(c2[5286],_mm_xor_si128(c2[3024],_mm_xor_si128(c2[5880],_mm_xor_si128(c2[3599],_mm_xor_si128(c2[3050],_mm_xor_si128(c2[3053],_mm_xor_si128(c2[5911],_mm_xor_si128(c2[3076],_mm_xor_si128(c2[6510],_mm_xor_si128(c2[6508],_mm_xor_si128(c2[3102],_mm_xor_si128(c2[4246],_mm_xor_si128(c2[8816],_mm_xor_si128(c2[8814],_mm_xor_si128(c2[3128],_mm_xor_si128(c2[4843],_mm_xor_si128(c2[7128],_mm_xor_si128(c2[3154],_mm_xor_si128(c2[3155],_mm_xor_si128(c2[4862],_mm_xor_si128(c2[3146],_mm_xor_si128(c2[3180],_mm_xor_si128(c2[896],_mm_xor_si128(c2[8896],_mm_xor_si128(c2[3206],_mm_xor_si128(c2[343],_mm_xor_si128(c2[7202],_mm_xor_si128(c2[3232],_mm_xor_si128(c2[946],_mm_xor_si128(c2[6092],_mm_xor_si128(c2[3258],_mm_xor_si128(c2[6690],_mm_xor_si128(c2[6110],_mm_xor_si128(c2[3284],_mm_xor_si128(c2[2142],_mm_xor_si128(c2[989],_mm_xor_si128(c2[3310],_mm_xor_si128(c2[2741],_mm_xor_si128(c2[1592],_mm_xor_si128(c2[3336],_mm_xor_si128(c2[5050],_mm_xor_si128(c2[7906],_mm_xor_si128(c2[3362],_mm_xor_si128(c2[7935],_mm_xor_si128(c2[9084],_mm_xor_si128(c2[3388],_mm_xor_si128(c2[4536],_mm_xor_si128(c2[4532],_mm_xor_si128(c2[3414],_mm_xor_si128(c2[2844],c2[2266]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 21
d2[273]=_mm_xor_si128(c2[3458],_mm_xor_si128(c2[3567],_mm_xor_si128(c2[422],_mm_xor_si128(c2[6242],c2[4562]))));
//row: 22
d2[286]=_mm_xor_si128(c2[6866],_mm_xor_si128(c2[6035],_mm_xor_si128(c2[1490],c2[2166])));
//row: 23
d2[299]=_mm_xor_si128(c2[7464],_mm_xor_si128(c2[1197],_mm_xor_si128(c2[2556],c2[2762])));
//row: 24
d2[312]=_mm_xor_si128(c2[7442],_mm_xor_si128(c2[1724],_mm_xor_si128(c2[574],_mm_xor_si128(c2[579],_mm_xor_si128(c2[5148],_mm_xor_si128(c2[7468],_mm_xor_si128(c2[1179],_mm_xor_si128(c2[1749],_mm_xor_si128(c2[7494],_mm_xor_si128(c2[4635],_mm_xor_si128(c2[1204],_mm_xor_si128(c2[7520],_mm_xor_si128(c2[5227],_mm_xor_si128(c2[8094],_mm_xor_si128(c2[7521],_mm_xor_si128(c2[7546],_mm_xor_si128(c2[681],_mm_xor_si128(c2[8112],_mm_xor_si128(c2[8695],_mm_xor_si128(c2[7572],_mm_xor_si128(c2[4141],_mm_xor_si128(c2[709],_mm_xor_si128(c2[7598],_mm_xor_si128(c2[1303],_mm_xor_si128(c2[8173],_mm_xor_si128(c2[7624],_mm_xor_si128(c2[7627],_mm_xor_si128(c2[1334],_mm_xor_si128(c2[7650],_mm_xor_si128(c2[1933],_mm_xor_si128(c2[1931],_mm_xor_si128(c2[7676],_mm_xor_si128(c2[8820],_mm_xor_si128(c2[4239],_mm_xor_si128(c2[7702],_mm_xor_si128(c2[266],_mm_xor_si128(c2[2551],_mm_xor_si128(c2[7728],_mm_xor_si128(c2[7729],_mm_xor_si128(c2[298],_mm_xor_si128(c2[7151],_mm_xor_si128(c2[7754],_mm_xor_si128(c2[5470],_mm_xor_si128(c2[4319],_mm_xor_si128(c2[7780],_mm_xor_si128(c2[4917],_mm_xor_si128(c2[2638],_mm_xor_si128(c2[7806],_mm_xor_si128(c2[5520],_mm_xor_si128(c2[1515],_mm_xor_si128(c2[7832],_mm_xor_si128(c2[2113],_mm_xor_si128(c2[1546],_mm_xor_si128(c2[7858],_mm_xor_si128(c2[6716],_mm_xor_si128(c2[5576],_mm_xor_si128(c2[7884],_mm_xor_si128(c2[7315],_mm_xor_si128(c2[6166],_mm_xor_si128(c2[7910],_mm_xor_si128(c2[473],_mm_xor_si128(c2[3329],_mm_xor_si128(c2[7936],_mm_xor_si128(c2[3358],_mm_xor_si128(c2[4507],_mm_xor_si128(c2[7962],_mm_xor_si128(c2[9110],_mm_xor_si128(c2[9106],_mm_xor_si128(c2[7988],_mm_xor_si128(c2[7418],c2[6840]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 25
d2[325]=_mm_xor_si128(c2[2314],_mm_xor_si128(c2[5880],_mm_xor_si128(c2[183],c2[7229])));
//row: 26
d2[338]=_mm_xor_si128(c2[2861],_mm_xor_si128(c2[8068],_mm_xor_si128(c2[116],c2[3262])));
//row: 27
d2[351]=_mm_xor_si128(c2[1176],_mm_xor_si128(c2[7028],c2[3641]));
//row: 28
d2[364]=_mm_xor_si128(c2[2288],_mm_xor_si128(c2[676],_mm_xor_si128(c2[5072],c2[7987])));
//row: 29
d2[377]=_mm_xor_si128(c2[7442],_mm_xor_si128(c2[1724],_mm_xor_si128(c2[574],_mm_xor_si128(c2[5720],_mm_xor_si128(c2[579],_mm_xor_si128(c2[7468],_mm_xor_si128(c2[1179],_mm_xor_si128(c2[6890],_mm_xor_si128(c2[1749],_mm_xor_si128(c2[6895],_mm_xor_si128(c2[7494],_mm_xor_si128(c2[4635],_mm_xor_si128(c2[1204],_mm_xor_si128(c2[7520],_mm_xor_si128(c2[5227],_mm_xor_si128(c2[4084],_mm_xor_si128(c2[8094],_mm_xor_si128(c2[7546],_mm_xor_si128(c2[681],_mm_xor_si128(c2[4115],_mm_xor_si128(c2[8112],_mm_xor_si128(c2[7572],_mm_xor_si128(c2[4141],_mm_xor_si128(c2[709],_mm_xor_si128(c2[7598],_mm_xor_si128(c2[1303],_mm_xor_si128(c2[4163],_mm_xor_si128(c2[8173],_mm_xor_si128(c2[7624],_mm_xor_si128(c2[7627],_mm_xor_si128(c2[6475],_mm_xor_si128(c2[1334],_mm_xor_si128(c2[7650],_mm_xor_si128(c2[1933],_mm_xor_si128(c2[7072],_mm_xor_si128(c2[1931],_mm_xor_si128(c2[7676],_mm_xor_si128(c2[8820],_mm_xor_si128(c2[4239],_mm_xor_si128(c2[7702],_mm_xor_si128(c2[266],_mm_xor_si128(c2[7705],_mm_xor_si128(c2[2551],_mm_xor_si128(c2[7728],_mm_xor_si128(c2[7729],_mm_xor_si128(c2[5439],_mm_xor_si128(c2[298],_mm_xor_si128(c2[7754],_mm_xor_si128(c2[5470],_mm_xor_si128(c2[322],_mm_xor_si128(c2[4319],_mm_xor_si128(c2[7780],_mm_xor_si128(c2[4917],_mm_xor_si128(c2[7779],_mm_xor_si128(c2[2638],_mm_xor_si128(c2[7806],_mm_xor_si128(c2[5520],_mm_xor_si128(c2[6656],_mm_xor_si128(c2[1515],_mm_xor_si128(c2[4948],_mm_xor_si128(c2[7832],_mm_xor_si128(c2[2113],_mm_xor_si128(c2[1546],_mm_xor_si128(c2[7858],_mm_xor_si128(c2[6716],_mm_xor_si128(c2[1566],_mm_xor_si128(c2[5576],_mm_xor_si128(c2[7884],_mm_xor_si128(c2[7315],_mm_xor_si128(c2[2169],_mm_xor_si128(c2[6166],_mm_xor_si128(c2[7910],_mm_xor_si128(c2[473],_mm_xor_si128(c2[8483],_mm_xor_si128(c2[3329],_mm_xor_si128(c2[6194],_mm_xor_si128(c2[7936],_mm_xor_si128(c2[3358],_mm_xor_si128(c2[4507],_mm_xor_si128(c2[7962],_mm_xor_si128(c2[9110],_mm_xor_si128(c2[5096],_mm_xor_si128(c2[9106],_mm_xor_si128(c2[7988],_mm_xor_si128(c2[7418],_mm_xor_si128(c2[2843],c2[6840]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 30
d2[390]=_mm_xor_si128(c2[6299],_mm_xor_si128(c2[581],_mm_xor_si128(c2[4585],_mm_xor_si128(c2[8582],_mm_xor_si128(c2[4577],_mm_xor_si128(c2[8587],_mm_xor_si128(c2[1144],_mm_xor_si128(c2[6325],_mm_xor_si128(c2[5177],_mm_xor_si128(c2[36],_mm_xor_si128(c2[5747],_mm_xor_si128(c2[606],_mm_xor_si128(c2[6351],_mm_xor_si128(c2[3492],_mm_xor_si128(c2[5202],_mm_xor_si128(c2[61],_mm_xor_si128(c2[6377],_mm_xor_si128(c2[4084],_mm_xor_si128(c2[2941],_mm_xor_si128(c2[6951],_mm_xor_si128(c2[6403],_mm_xor_si128(c2[4692],_mm_xor_si128(c2[8689],_mm_xor_si128(c2[2972],_mm_xor_si128(c2[6969],_mm_xor_si128(c2[6429],_mm_xor_si128(c2[2998],_mm_xor_si128(c2[4707],_mm_xor_si128(c2[8717],_mm_xor_si128(c2[6455],_mm_xor_si128(c2[5314],_mm_xor_si128(c2[160],_mm_xor_si128(c2[3020],_mm_xor_si128(c2[7030],_mm_xor_si128(c2[6481],_mm_xor_si128(c2[2474],_mm_xor_si128(c2[6484],_mm_xor_si128(c2[5332],_mm_xor_si128(c2[191],_mm_xor_si128(c2[6507],_mm_xor_si128(c2[5931],_mm_xor_si128(c2[790],_mm_xor_si128(c2[5929],_mm_xor_si128(c2[788],_mm_xor_si128(c2[6533],_mm_xor_si128(c2[7677],_mm_xor_si128(c2[8250],_mm_xor_si128(c2[3096],_mm_xor_si128(c2[6559],_mm_xor_si128(c2[4264],_mm_xor_si128(c2[8274],_mm_xor_si128(c2[6562],_mm_xor_si128(c2[1408],_mm_xor_si128(c2[4841],_mm_xor_si128(c2[6585],_mm_xor_si128(c2[6586],_mm_xor_si128(c2[4296],_mm_xor_si128(c2[8306],_mm_xor_si128(c2[6611],_mm_xor_si128(c2[4327],_mm_xor_si128(c2[8330],_mm_xor_si128(c2[3176],_mm_xor_si128(c2[6637],_mm_xor_si128(c2[8928],_mm_xor_si128(c2[3774],_mm_xor_si128(c2[6636],_mm_xor_si128(c2[1482],_mm_xor_si128(c2[345],_mm_xor_si128(c2[6663],_mm_xor_si128(c2[367],_mm_xor_si128(c2[4377],_mm_xor_si128(c2[5513],_mm_xor_si128(c2[372],_mm_xor_si128(c2[6689],_mm_xor_si128(c2[970],_mm_xor_si128(c2[5544],_mm_xor_si128(c2[390],_mm_xor_si128(c2[6715],_mm_xor_si128(c2[5573],_mm_xor_si128(c2[423],_mm_xor_si128(c2[4420],_mm_xor_si128(c2[6741],_mm_xor_si128(c2[2162],_mm_xor_si128(c2[6172],_mm_xor_si128(c2[1026],_mm_xor_si128(c2[5023],_mm_xor_si128(c2[6767],_mm_xor_si128(c2[4484],_mm_xor_si128(c2[8481],_mm_xor_si128(c2[7340],_mm_xor_si128(c2[2186],_mm_xor_si128(c2[6793],_mm_xor_si128(c2[2215],_mm_xor_si128(c2[8505],_mm_xor_si128(c2[3364],_mm_xor_si128(c2[6819],_mm_xor_si128(c2[3957],_mm_xor_si128(c2[7967],_mm_xor_si128(c2[3953],_mm_xor_si128(c2[7963],_mm_xor_si128(c2[6845],_mm_xor_si128(c2[6275],_mm_xor_si128(c2[1700],c2[5697])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 31
d2[403]=_mm_xor_si128(c2[2289],_mm_xor_si128(c2[5153],_mm_xor_si128(c2[5722],_mm_xor_si128(c2[8586],_mm_xor_si128(c2[4585],_mm_xor_si128(c2[7436],_mm_xor_si128(c2[4577],_mm_xor_si128(c2[3444],_mm_xor_si128(c2[7441],_mm_xor_si128(c2[2315],_mm_xor_si128(c2[5179],_mm_xor_si128(c2[5177],_mm_xor_si128(c2[8041],_mm_xor_si128(c2[5747],_mm_xor_si128(c2[4614],_mm_xor_si128(c2[8611],_mm_xor_si128(c2[2314],_mm_xor_si128(c2[2341],_mm_xor_si128(c2[5205],_mm_xor_si128(c2[8633],_mm_xor_si128(c2[2346],_mm_xor_si128(c2[5202],_mm_xor_si128(c2[8066],_mm_xor_si128(c2[2367],_mm_xor_si128(c2[5231],_mm_xor_si128(c2[87],_mm_xor_si128(c2[2938],_mm_xor_si128(c2[2941],_mm_xor_si128(c2[1795],_mm_xor_si128(c2[5805],_mm_xor_si128(c2[2393],_mm_xor_si128(c2[5257],_mm_xor_si128(c2[4692],_mm_xor_si128(c2[7543],_mm_xor_si128(c2[2972],_mm_xor_si128(c2[1826],_mm_xor_si128(c2[5836],_mm_xor_si128(c2[2419],_mm_xor_si128(c2[5283],_mm_xor_si128(c2[8139],_mm_xor_si128(c2[1852],_mm_xor_si128(c2[4707],_mm_xor_si128(c2[7571],_mm_xor_si128(c2[2445],_mm_xor_si128(c2[5309],_mm_xor_si128(c2[5314],_mm_xor_si128(c2[8165],_mm_xor_si128(c2[3020],_mm_xor_si128(c2[1874],_mm_xor_si128(c2[5884],_mm_xor_si128(c2[2471],_mm_xor_si128(c2[5335],_mm_xor_si128(c2[2474],_mm_xor_si128(c2[5338],_mm_xor_si128(c2[5332],_mm_xor_si128(c2[4186],_mm_xor_si128(c2[8196],_mm_xor_si128(c2[757],_mm_xor_si128(c2[2497],_mm_xor_si128(c2[5361],_mm_xor_si128(c2[5931],_mm_xor_si128(c2[8795],_mm_xor_si128(c2[5929],_mm_xor_si128(c2[4796],_mm_xor_si128(c2[8793],_mm_xor_si128(c2[2523],_mm_xor_si128(c2[5387],_mm_xor_si128(c2[3667],_mm_xor_si128(c2[6531],_mm_xor_si128(c2[8250],_mm_xor_si128(c2[1950],_mm_xor_si128(c2[2549],_mm_xor_si128(c2[5413],_mm_xor_si128(c2[4264],_mm_xor_si128(c2[7128],_mm_xor_si128(c2[6562],_mm_xor_si128(c2[5416],_mm_xor_si128(c2[262],_mm_xor_si128(c2[2575],_mm_xor_si128(c2[5439],_mm_xor_si128(c2[2576],_mm_xor_si128(c2[5440],_mm_xor_si128(c2[4296],_mm_xor_si128(c2[3150],_mm_xor_si128(c2[7160],_mm_xor_si128(c2[2601],_mm_xor_si128(c2[5465],_mm_xor_si128(c2[317],_mm_xor_si128(c2[3181],_mm_xor_si128(c2[8330],_mm_xor_si128(c2[7184],_mm_xor_si128(c2[2030],_mm_xor_si128(c2[2627],_mm_xor_si128(c2[5491],_mm_xor_si128(c2[8928],_mm_xor_si128(c2[2628],_mm_xor_si128(c2[6636],_mm_xor_si128(c2[5490],_mm_xor_si128(c2[349],_mm_xor_si128(c2[2653],_mm_xor_si128(c2[5517],_mm_xor_si128(c2[367],_mm_xor_si128(c2[3231],_mm_xor_si128(c2[5513],_mm_xor_si128(c2[4380],_mm_xor_si128(c2[8377],_mm_xor_si128(c2[2679],_mm_xor_si128(c2[5543],_mm_xor_si128(c2[6111],_mm_xor_si128(c2[8975],_mm_xor_si128(c2[5544],_mm_xor_si128(c2[8408],_mm_xor_si128(c2[2705],_mm_xor_si128(c2[5569],_mm_xor_si128(c2[1563],_mm_xor_si128(c2[4427],_mm_xor_si128(c2[423],_mm_xor_si128(c2[8428],_mm_xor_si128(c2[3287],_mm_xor_si128(c2[2731],_mm_xor_si128(c2[5595],_mm_xor_si128(c2[2162],_mm_xor_si128(c2[5026],_mm_xor_si128(c2[1026],_mm_xor_si128(c2[9031],_mm_xor_si128(c2[3877],_mm_xor_si128(c2[2757],_mm_xor_si128(c2[5621],_mm_xor_si128(c2[4484],_mm_xor_si128(c2[7335],_mm_xor_si128(c2[7340],_mm_xor_si128(c2[6194],_mm_xor_si128(c2[1040],_mm_xor_si128(c2[2783],_mm_xor_si128(c2[5647],_mm_xor_si128(c2[7369],_mm_xor_si128(c2[1069],_mm_xor_si128(c2[8505],_mm_xor_si128(c2[2218],_mm_xor_si128(c2[2809],_mm_xor_si128(c2[5673],_mm_xor_si128(c2[3957],_mm_xor_si128(c2[6821],_mm_xor_si128(c2[3953],_mm_xor_si128(c2[2820],_mm_xor_si128(c2[6817],_mm_xor_si128(c2[2835],_mm_xor_si128(c2[5699],_mm_xor_si128(c2[2265],_mm_xor_si128(c2[5129],_mm_xor_si128(c2[1700],_mm_xor_si128(c2[554],c2[4551]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 32
d2[416]=_mm_xor_si128(c2[6299],_mm_xor_si128(c2[581],_mm_xor_si128(c2[4585],_mm_xor_si128(c2[8582],_mm_xor_si128(c2[4577],_mm_xor_si128(c2[8587],_mm_xor_si128(c2[3432],_mm_xor_si128(c2[6325],_mm_xor_si128(c2[5177],_mm_xor_si128(c2[36],_mm_xor_si128(c2[5747],_mm_xor_si128(c2[606],_mm_xor_si128(c2[6351],_mm_xor_si128(c2[3492],_mm_xor_si128(c2[5202],_mm_xor_si128(c2[61],_mm_xor_si128(c2[6377],_mm_xor_si128(c2[4084],_mm_xor_si128(c2[2941],_mm_xor_si128(c2[6951],_mm_xor_si128(c2[6403],_mm_xor_si128(c2[4692],_mm_xor_si128(c2[8689],_mm_xor_si128(c2[2972],_mm_xor_si128(c2[6969],_mm_xor_si128(c2[6429],_mm_xor_si128(c2[2998],_mm_xor_si128(c2[4707],_mm_xor_si128(c2[8717],_mm_xor_si128(c2[6455],_mm_xor_si128(c2[5314],_mm_xor_si128(c2[160],_mm_xor_si128(c2[3020],_mm_xor_si128(c2[7030],_mm_xor_si128(c2[6481],_mm_xor_si128(c2[2474],_mm_xor_si128(c2[6484],_mm_xor_si128(c2[5332],_mm_xor_si128(c2[191],_mm_xor_si128(c2[6507],_mm_xor_si128(c2[5931],_mm_xor_si128(c2[790],_mm_xor_si128(c2[5929],_mm_xor_si128(c2[788],_mm_xor_si128(c2[6533],_mm_xor_si128(c2[7677],_mm_xor_si128(c2[8250],_mm_xor_si128(c2[3096],_mm_xor_si128(c2[6559],_mm_xor_si128(c2[4264],_mm_xor_si128(c2[8274],_mm_xor_si128(c2[6562],_mm_xor_si128(c2[1408],_mm_xor_si128(c2[6585],_mm_xor_si128(c2[6586],_mm_xor_si128(c2[4296],_mm_xor_si128(c2[8306],_mm_xor_si128(c2[6611],_mm_xor_si128(c2[4327],_mm_xor_si128(c2[8330],_mm_xor_si128(c2[3176],_mm_xor_si128(c2[8327],_mm_xor_si128(c2[6637],_mm_xor_si128(c2[8928],_mm_xor_si128(c2[3774],_mm_xor_si128(c2[6636],_mm_xor_si128(c2[1482],_mm_xor_si128(c2[6663],_mm_xor_si128(c2[367],_mm_xor_si128(c2[4377],_mm_xor_si128(c2[5513],_mm_xor_si128(c2[372],_mm_xor_si128(c2[8947],_mm_xor_si128(c2[6689],_mm_xor_si128(c2[970],_mm_xor_si128(c2[5544],_mm_xor_si128(c2[390],_mm_xor_si128(c2[6715],_mm_xor_si128(c2[5573],_mm_xor_si128(c2[423],_mm_xor_si128(c2[4420],_mm_xor_si128(c2[6741],_mm_xor_si128(c2[2162],_mm_xor_si128(c2[6172],_mm_xor_si128(c2[1026],_mm_xor_si128(c2[5023],_mm_xor_si128(c2[6767],_mm_xor_si128(c2[4484],_mm_xor_si128(c2[8481],_mm_xor_si128(c2[7340],_mm_xor_si128(c2[2186],_mm_xor_si128(c2[6793],_mm_xor_si128(c2[2215],_mm_xor_si128(c2[8505],_mm_xor_si128(c2[3364],_mm_xor_si128(c2[6819],_mm_xor_si128(c2[3957],_mm_xor_si128(c2[7967],_mm_xor_si128(c2[3953],_mm_xor_si128(c2[7963],_mm_xor_si128(c2[6845],_mm_xor_si128(c2[6275],_mm_xor_si128(c2[1700],c2[5697])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 33
d2[429]=_mm_xor_si128(c2[5746],_mm_xor_si128(c2[8061],_mm_xor_si128(c2[3718],c2[7415])));
//row: 34
d2[442]=_mm_xor_si128(c2[2288],_mm_xor_si128(c2[5339],_mm_xor_si128(c2[3262],c2[6743])));
//row: 35
d2[455]=_mm_xor_si128(c2[5],_mm_xor_si128(c2[3438],_mm_xor_si128(c2[2288],_mm_xor_si128(c2[2293],_mm_xor_si128(c2[31],_mm_xor_si128(c2[2893],_mm_xor_si128(c2[3463],_mm_xor_si128(c2[2314],_mm_xor_si128(c2[57],_mm_xor_si128(c2[6349],_mm_xor_si128(c2[2918],_mm_xor_si128(c2[83],_mm_xor_si128(c2[6954],_mm_xor_si128(c2[657],_mm_xor_si128(c2[109],_mm_xor_si128(c2[2395],_mm_xor_si128(c2[688],_mm_xor_si128(c2[135],_mm_xor_si128(c2[5855],_mm_xor_si128(c2[2423],_mm_xor_si128(c2[161],_mm_xor_si128(c2[3017],_mm_xor_si128(c2[736],_mm_xor_si128(c2[7594],_mm_xor_si128(c2[187],_mm_xor_si128(c2[190],_mm_xor_si128(c2[3048],_mm_xor_si128(c2[213],_mm_xor_si128(c2[3647],_mm_xor_si128(c2[3645],_mm_xor_si128(c2[239],_mm_xor_si128(c2[1383],_mm_xor_si128(c2[5966],_mm_xor_si128(c2[265],_mm_xor_si128(c2[1980],_mm_xor_si128(c2[4265],_mm_xor_si128(c2[291],_mm_xor_si128(c2[292],_mm_xor_si128(c2[2012],_mm_xor_si128(c2[317],_mm_xor_si128(c2[7184],_mm_xor_si128(c2[6033],_mm_xor_si128(c2[4898],_mm_xor_si128(c2[343],_mm_xor_si128(c2[6631],_mm_xor_si128(c2[4352],_mm_xor_si128(c2[369],_mm_xor_si128(c2[7234],_mm_xor_si128(c2[3229],_mm_xor_si128(c2[395],_mm_xor_si128(c2[3827],_mm_xor_si128(c2[3260],_mm_xor_si128(c2[421],_mm_xor_si128(c2[8430],_mm_xor_si128(c2[7290],_mm_xor_si128(c2[447],_mm_xor_si128(c2[9029],_mm_xor_si128(c2[7880],_mm_xor_si128(c2[473],_mm_xor_si128(c2[2187],_mm_xor_si128(c2[5056],_mm_xor_si128(c2[499],_mm_xor_si128(c2[5072],_mm_xor_si128(c2[6221],_mm_xor_si128(c2[525],_mm_xor_si128(c2[1673],_mm_xor_si128(c2[1669],_mm_xor_si128(c2[551],_mm_xor_si128(c2[9132],c2[8554])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 36
d2[468]=_mm_xor_si128(c2[3432],_mm_xor_si128(c2[4952],_mm_xor_si128(c2[973],c2[6762])));
//row: 37
d2[481]=_mm_xor_si128(c2[4012],_mm_xor_si128(c2[8009],_mm_xor_si128(c2[2291],_mm_xor_si128(c2[1154],_mm_xor_si128(c2[1146],_mm_xor_si128(c2[4038],_mm_xor_si128(c2[8035],_mm_xor_si128(c2[1746],_mm_xor_si128(c2[2316],_mm_xor_si128(c2[1175],_mm_xor_si128(c2[4064],_mm_xor_si128(c2[8061],_mm_xor_si128(c2[5202],_mm_xor_si128(c2[1771],_mm_xor_si128(c2[4090],_mm_xor_si128(c2[8087],_mm_xor_si128(c2[5807],_mm_xor_si128(c2[8661],_mm_xor_si128(c2[8113],_mm_xor_si128(c2[1248],_mm_xor_si128(c2[8692],_mm_xor_si128(c2[4142],_mm_xor_si128(c2[8139],_mm_xor_si128(c2[4708],_mm_xor_si128(c2[1276],_mm_xor_si128(c2[4168],_mm_xor_si128(c2[8165],_mm_xor_si128(c2[1883],_mm_xor_si128(c2[8740],_mm_xor_si128(c2[8191],_mm_xor_si128(c2[8194],_mm_xor_si128(c2[1901],_mm_xor_si128(c2[8217],_mm_xor_si128(c2[2500],_mm_xor_si128(c2[2498],_mm_xor_si128(c2[4246],_mm_xor_si128(c2[8243],_mm_xor_si128(c2[236],_mm_xor_si128(c2[4819],_mm_xor_si128(c2[4272],_mm_xor_si128(c2[8269],_mm_xor_si128(c2[833],_mm_xor_si128(c2[3131],_mm_xor_si128(c2[4298],_mm_xor_si128(c2[8295],_mm_xor_si128(c2[8296],_mm_xor_si128(c2[865],_mm_xor_si128(c2[4324],_mm_xor_si128(c2[8321],_mm_xor_si128(c2[6037],_mm_xor_si128(c2[4899],_mm_xor_si128(c2[4350],_mm_xor_si128(c2[8347],_mm_xor_si128(c2[5497],_mm_xor_si128(c2[3205],_mm_xor_si128(c2[1482],_mm_xor_si128(c2[8373],_mm_xor_si128(c2[6087],_mm_xor_si128(c2[2082],_mm_xor_si128(c2[4402],_mm_xor_si128(c2[8399],_mm_xor_si128(c2[2680],_mm_xor_si128(c2[2113],_mm_xor_si128(c2[4428],_mm_xor_si128(c2[8425],_mm_xor_si128(c2[7283],_mm_xor_si128(c2[6143],_mm_xor_si128(c2[8451],_mm_xor_si128(c2[7882],_mm_xor_si128(c2[6746],_mm_xor_si128(c2[4480],_mm_xor_si128(c2[8477],_mm_xor_si128(c2[1040],_mm_xor_si128(c2[3909],_mm_xor_si128(c2[4506],_mm_xor_si128(c2[8503],_mm_xor_si128(c2[3938],_mm_xor_si128(c2[5074],_mm_xor_si128(c2[4532],_mm_xor_si128(c2[8529],_mm_xor_si128(c2[526],_mm_xor_si128(c2[522],_mm_xor_si128(c2[4558],_mm_xor_si128(c2[8555],_mm_xor_si128(c2[7985],c2[7420])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 38
d2[494]=_mm_xor_si128(c2[6297],_mm_xor_si128(c2[238],_mm_xor_si128(c2[3704],c2[2606])));
//row: 39
d2[507]=_mm_xor_si128(c2[2314],_mm_xor_si128(c2[6943],_mm_xor_si128(c2[7624],c2[7369])));
//row: 40
d2[520]=_mm_xor_si128(c2[5720],_mm_xor_si128(c2[2501],c2[7306]));
//row: 41
d2[533]=_mm_xor_si128(c2[1170],_mm_xor_si128(c2[6374],_mm_xor_si128(c2[8250],c2[476])));
//row: 42
d2[546]=_mm_xor_si128(c2[5151],_mm_xor_si128(c2[8584],_mm_xor_si128(c2[3437],_mm_xor_si128(c2[7447],_mm_xor_si128(c2[3442],_mm_xor_si128(c2[7439],_mm_xor_si128(c2[1726],_mm_xor_si128(c2[5177],_mm_xor_si128(c2[4042],_mm_xor_si128(c2[8039],_mm_xor_si128(c2[4612],_mm_xor_si128(c2[8609],_mm_xor_si128(c2[5203],_mm_xor_si128(c2[2344],_mm_xor_si128(c2[4067],_mm_xor_si128(c2[8064],_mm_xor_si128(c2[5229],_mm_xor_si128(c2[2949],_mm_xor_si128(c2[1806],_mm_xor_si128(c2[5803],_mm_xor_si128(c2[5255],_mm_xor_si128(c2[3544],_mm_xor_si128(c2[7541],_mm_xor_si128(c2[1824],_mm_xor_si128(c2[5834],_mm_xor_si128(c2[5824],_mm_xor_si128(c2[5281],_mm_xor_si128(c2[1850],_mm_xor_si128(c2[3572],_mm_xor_si128(c2[7569],_mm_xor_si128(c2[5307],_mm_xor_si128(c2[4166],_mm_xor_si128(c2[8176],_mm_xor_si128(c2[1872],_mm_xor_si128(c2[5882],_mm_xor_si128(c2[5333],_mm_xor_si128(c2[1326],_mm_xor_si128(c2[5336],_mm_xor_si128(c2[4197],_mm_xor_si128(c2[8194],_mm_xor_si128(c2[5359],_mm_xor_si128(c2[4796],_mm_xor_si128(c2[8793],_mm_xor_si128(c2[4794],_mm_xor_si128(c2[8791],_mm_xor_si128(c2[5385],_mm_xor_si128(c2[6529],_mm_xor_si128(c2[7102],_mm_xor_si128(c2[1961],_mm_xor_si128(c2[5411],_mm_xor_si128(c2[3129],_mm_xor_si128(c2[7126],_mm_xor_si128(c2[5414],_mm_xor_si128(c2[260],_mm_xor_si128(c2[5437],_mm_xor_si128(c2[5438],_mm_xor_si128(c2[3148],_mm_xor_si128(c2[7158],_mm_xor_si128(c2[5463],_mm_xor_si128(c2[3179],_mm_xor_si128(c2[7182],_mm_xor_si128(c2[2028],_mm_xor_si128(c2[5489],_mm_xor_si128(c2[7780],_mm_xor_si128(c2[2626],_mm_xor_si128(c2[5488],_mm_xor_si128(c2[347],_mm_xor_si128(c2[5515],_mm_xor_si128(c2[8383],_mm_xor_si128(c2[3229],_mm_xor_si128(c2[4378],_mm_xor_si128(c2[8375],_mm_xor_si128(c2[5541],_mm_xor_si128(c2[8973],_mm_xor_si128(c2[4396],_mm_xor_si128(c2[8406],_mm_xor_si128(c2[5567],_mm_xor_si128(c2[4425],_mm_xor_si128(c2[8426],_mm_xor_si128(c2[3285],_mm_xor_si128(c2[5593],_mm_xor_si128(c2[1014],_mm_xor_si128(c2[5024],_mm_xor_si128(c2[9029],_mm_xor_si128(c2[3875],_mm_xor_si128(c2[5619],_mm_xor_si128(c2[3336],_mm_xor_si128(c2[7333],_mm_xor_si128(c2[6192],_mm_xor_si128(c2[1051],_mm_xor_si128(c2[5645],_mm_xor_si128(c2[1067],_mm_xor_si128(c2[7370],_mm_xor_si128(c2[2216],_mm_xor_si128(c2[5671],_mm_xor_si128(c2[2809],_mm_xor_si128(c2[6819],_mm_xor_si128(c2[2818],_mm_xor_si128(c2[6815],_mm_xor_si128(c2[5697],_mm_xor_si128(c2[5127],_mm_xor_si128(c2[552],c2[4562]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 43
d2[559]=_mm_xor_si128(c2[5160],_mm_xor_si128(c2[8580],_mm_xor_si128(c2[7443],_mm_xor_si128(c2[3438],_mm_xor_si128(c2[7448],_mm_xor_si128(c2[5186],_mm_xor_si128(c2[8035],_mm_xor_si128(c2[4608],_mm_xor_si128(c2[8618],_mm_xor_si128(c2[598],_mm_xor_si128(c2[5212],_mm_xor_si128(c2[2340],_mm_xor_si128(c2[8060],_mm_xor_si128(c2[5238],_mm_xor_si128(c2[2945],_mm_xor_si128(c2[1802],_mm_xor_si128(c2[5799],_mm_xor_si128(c2[5264],_mm_xor_si128(c2[7550],_mm_xor_si128(c2[1820],_mm_xor_si128(c2[5830],_mm_xor_si128(c2[5290],_mm_xor_si128(c2[1846],_mm_xor_si128(c2[7578],_mm_xor_si128(c2[5316],_mm_xor_si128(c2[8172],_mm_xor_si128(c2[1881],_mm_xor_si128(c2[5878],_mm_xor_si128(c2[5342],_mm_xor_si128(c2[5332],_mm_xor_si128(c2[4193],_mm_xor_si128(c2[8190],_mm_xor_si128(c2[5368],_mm_xor_si128(c2[8789],_mm_xor_si128(c2[4790],_mm_xor_si128(c2[8800],_mm_xor_si128(c2[5394],_mm_xor_si128(c2[6538],_mm_xor_si128(c2[1957],_mm_xor_si128(c2[5420],_mm_xor_si128(c2[7135],_mm_xor_si128(c2[5410],_mm_xor_si128(c2[269],_mm_xor_si128(c2[5446],_mm_xor_si128(c2[5434],_mm_xor_si128(c2[3157],_mm_xor_si128(c2[7154],_mm_xor_si128(c2[5472],_mm_xor_si128(c2[3175],_mm_xor_si128(c2[7178],_mm_xor_si128(c2[2037],_mm_xor_si128(c2[5498],_mm_xor_si128(c2[2635],_mm_xor_si128(c2[5497],_mm_xor_si128(c2[343],_mm_xor_si128(c2[5524],_mm_xor_si128(c2[3225],_mm_xor_si128(c2[4374],_mm_xor_si128(c2[8384],_mm_xor_si128(c2[5550],_mm_xor_si128(c2[8982],_mm_xor_si128(c2[8402],_mm_xor_si128(c2[5576],_mm_xor_si128(c2[4421],_mm_xor_si128(c2[8435],_mm_xor_si128(c2[3281],_mm_xor_si128(c2[2142],_mm_xor_si128(c2[5602],_mm_xor_si128(c2[5020],_mm_xor_si128(c2[9025],_mm_xor_si128(c2[3884],_mm_xor_si128(c2[5628],_mm_xor_si128(c2[7342],_mm_xor_si128(c2[6188],_mm_xor_si128(c2[1047],_mm_xor_si128(c2[2190],_mm_xor_si128(c2[5654],_mm_xor_si128(c2[1076],_mm_xor_si128(c2[2212],_mm_xor_si128(c2[5680],_mm_xor_si128(c2[6815],_mm_xor_si128(c2[2814],_mm_xor_si128(c2[6824],_mm_xor_si128(c2[5706],_mm_xor_si128(c2[5123],_mm_xor_si128(c2[548],c2[4558]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 44
d2[572]=_mm_xor_si128(c2[5726],_mm_xor_si128(c2[8],_mm_xor_si128(c2[8009],_mm_xor_si128(c2[8014],_mm_xor_si128(c2[2288],_mm_xor_si128(c2[5752],_mm_xor_si128(c2[8614],_mm_xor_si128(c2[33],_mm_xor_si128(c2[5778],_mm_xor_si128(c2[2919],_mm_xor_si128(c2[8639],_mm_xor_si128(c2[5804],_mm_xor_si128(c2[3511],_mm_xor_si128(c2[6378],_mm_xor_si128(c2[5830],_mm_xor_si128(c2[8116],_mm_xor_si128(c2[6396],_mm_xor_si128(c2[5856],_mm_xor_si128(c2[2425],_mm_xor_si128(c2[8144],_mm_xor_si128(c2[5882],_mm_xor_si128(c2[8738],_mm_xor_si128(c2[6457],_mm_xor_si128(c2[5908],_mm_xor_si128(c2[5911],_mm_xor_si128(c2[8769],_mm_xor_si128(c2[3614],_mm_xor_si128(c2[5934],_mm_xor_si128(c2[217],_mm_xor_si128(c2[215],_mm_xor_si128(c2[5960],_mm_xor_si128(c2[7104],_mm_xor_si128(c2[2523],_mm_xor_si128(c2[8250],_mm_xor_si128(c2[5986],_mm_xor_si128(c2[7701],_mm_xor_si128(c2[835],_mm_xor_si128(c2[6012],_mm_xor_si128(c2[6013],_mm_xor_si128(c2[7733],_mm_xor_si128(c2[6038],_mm_xor_si128(c2[3754],_mm_xor_si128(c2[2603],_mm_xor_si128(c2[6064],_mm_xor_si128(c2[3201],_mm_xor_si128(c2[922],_mm_xor_si128(c2[6090],_mm_xor_si128(c2[3804],_mm_xor_si128(c2[8950],_mm_xor_si128(c2[6116],_mm_xor_si128(c2[397],_mm_xor_si128(c2[8981],_mm_xor_si128(c2[6142],_mm_xor_si128(c2[5000],_mm_xor_si128(c2[3860],_mm_xor_si128(c2[6168],_mm_xor_si128(c2[5599],_mm_xor_si128(c2[4450],_mm_xor_si128(c2[6194],_mm_xor_si128(c2[7908],_mm_xor_si128(c2[1613],_mm_xor_si128(c2[6220],_mm_xor_si128(c2[1642],_mm_xor_si128(c2[2791],_mm_xor_si128(c2[6246],_mm_xor_si128(c2[7394],_mm_xor_si128(c2[7390],_mm_xor_si128(c2[6272],_mm_xor_si128(c2[5702],c2[5124])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 45
d2[585]=_mm_xor_si128(c2[2897],_mm_xor_si128(c2[7594],c2[5417]));
}
}
#include "PHY/sse_intrin.h"
// generated code for Zc=224, byte encoding
static inline void ldpc224_byte(uint8_t *c,uint8_t *d) {
__m256i *csimd=(__m256i *)c,*dsimd=(__m256i *)d;
__m256i *c2,*d2;
int i2;
for (i2=0; i2<7; i2++) {
c2=&csimd[i2];
d2=&dsimd[i2];
//row: 0
d2[0]=_mm256_xor_si256(c2[9554],_mm256_xor_si256(c2[4008],_mm256_xor_si256(c2[4626],_mm256_xor_si256(c2[2778],_mm256_xor_si256(c2[4942],_mm256_xor_si256(c2[3408],_mm256_xor_si256(c2[5558],_mm256_xor_si256(c2[9270],_mm256_xor_si256(c2[4033],_mm256_xor_si256(c2[9576],_mm256_xor_si256(c2[8360],_mm256_xor_si256(c2[7130],_mm256_xor_si256(c2[1587],_mm256_xor_si256(c2[4369],_mm256_xor_si256(c2[4989],_mm256_xor_si256(c2[1596],_mm256_xor_si256(c2[3152],_mm256_xor_si256(c2[7157],_mm256_xor_si256(c2[6235],_mm256_xor_si256(c2[3164],_mm256_xor_si256(c2[8097],_mm256_xor_si256(c2[4089],_mm256_xor_si256(c2[9034],_mm256_xor_si256(c2[9648],_mm256_xor_si256(c2[4414],_mm256_xor_si256(c2[1656],_mm256_xor_si256(c2[7816],_mm256_xor_si256(c2[5040],_mm256_xor_si256(c2[126],_mm256_xor_si256(c2[7212],_mm256_xor_si256(c2[5367],_mm256_xor_si256(c2[4150],_mm256_xor_si256(c2[1990],_mm256_xor_si256(c2[757],_mm256_xor_si256(c2[7552],_mm256_xor_si256(c2[4472],_mm256_xor_si256(c2[8474],_mm256_xor_si256(c2[6636],_mm256_xor_si256(c2[9102],_mm256_xor_si256(c2[6642],_mm256_xor_si256(c2[7272],_mm256_xor_si256(c2[4188],_mm256_xor_si256(c2[6038],_mm256_xor_si256(c2[4818],_mm256_xor_si256(c2[6978],_mm256_xor_si256(c2[1738],_mm256_xor_si256(c2[4522],_mm256_xor_si256(c2[2982],_mm256_xor_si256(c2[4216],_mm256_xor_si256(c2[2074],_mm256_xor_si256(c2[7003],_mm256_xor_si256(c2[227],_mm256_xor_si256(c2[860],_mm256_xor_si256(c2[2092],_mm256_xor_si256(c2[3320],_mm256_xor_si256(c2[4260],_mm256_xor_si256(c2[6723],_mm256_xor_si256(c2[1179],_mm256_xor_si256(c2[2120],_mm256_xor_si256(c2[9814],_mm256_xor_si256(c2[9820],_mm256_xor_si256(c2[2747],_mm256_xor_si256(c2[8290],_mm256_xor_si256(c2[9520],_mm256_xor_si256(c2[5532],_mm256_xor_si256(c2[8615],c2[9538]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 1
d2[7]=_mm256_xor_si256(c2[9554],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[4316],_mm256_xor_si256(c2[4934],_mm256_xor_si256(c2[3086],_mm256_xor_si256(c2[4942],_mm256_xor_si256(c2[5250],_mm256_xor_si256(c2[3716],_mm256_xor_si256(c2[5866],_mm256_xor_si256(c2[9270],_mm256_xor_si256(c2[9578],_mm256_xor_si256(c2[4341],_mm256_xor_si256(c2[29],_mm256_xor_si256(c2[8360],_mm256_xor_si256(c2[8668],_mm256_xor_si256(c2[7438],_mm256_xor_si256(c2[1895],_mm256_xor_si256(c2[4677],_mm256_xor_si256(c2[5297],_mm256_xor_si256(c2[1904],_mm256_xor_si256(c2[3152],_mm256_xor_si256(c2[3460],_mm256_xor_si256(c2[7465],_mm256_xor_si256(c2[6543],_mm256_xor_si256(c2[3164],_mm256_xor_si256(c2[3472],_mm256_xor_si256(c2[8405],_mm256_xor_si256(c2[4397],_mm256_xor_si256(c2[9342],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[4722],_mm256_xor_si256(c2[1964],_mm256_xor_si256(c2[8124],_mm256_xor_si256(c2[5348],_mm256_xor_si256(c2[126],_mm256_xor_si256(c2[434],_mm256_xor_si256(c2[7520],_mm256_xor_si256(c2[5675],_mm256_xor_si256(c2[4150],_mm256_xor_si256(c2[4458],_mm256_xor_si256(c2[2298],_mm256_xor_si256(c2[1065],_mm256_xor_si256(c2[7552],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[4780],_mm256_xor_si256(c2[8782],_mm256_xor_si256(c2[6636],_mm256_xor_si256(c2[6944],_mm256_xor_si256(c2[9410],_mm256_xor_si256(c2[6950],_mm256_xor_si256(c2[7272],_mm256_xor_si256(c2[7580],_mm256_xor_si256(c2[4496],_mm256_xor_si256(c2[6346],_mm256_xor_si256(c2[5126],_mm256_xor_si256(c2[7286],_mm256_xor_si256(c2[2046],_mm256_xor_si256(c2[4522],_mm256_xor_si256(c2[4830],_mm256_xor_si256(c2[3290],_mm256_xor_si256(c2[4524],_mm256_xor_si256(c2[2074],_mm256_xor_si256(c2[2382],_mm256_xor_si256(c2[7311],_mm256_xor_si256(c2[535],_mm256_xor_si256(c2[1168],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[3628],_mm256_xor_si256(c2[4260],_mm256_xor_si256(c2[4568],_mm256_xor_si256(c2[7031],_mm256_xor_si256(c2[1487],_mm256_xor_si256(c2[2120],_mm256_xor_si256(c2[2428],_mm256_xor_si256(c2[267],_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[2747],_mm256_xor_si256(c2[3055],_mm256_xor_si256(c2[8598],_mm256_xor_si256(c2[9828],_mm256_xor_si256(c2[5532],_mm256_xor_si256(c2[5840],_mm256_xor_si256(c2[8923],c2[9846])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 2
d2[14]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[4316],_mm256_xor_si256(c2[4626],_mm256_xor_si256(c2[4934],_mm256_xor_si256(c2[2778],_mm256_xor_si256(c2[3086],_mm256_xor_si256(c2[5250],_mm256_xor_si256(c2[3408],_mm256_xor_si256(c2[3716],_mm256_xor_si256(c2[5558],_mm256_xor_si256(c2[5866],_mm256_xor_si256(c2[9578],_mm256_xor_si256(c2[4341],_mm256_xor_si256(c2[9576],_mm256_xor_si256(c2[29],_mm256_xor_si256(c2[8668],_mm256_xor_si256(c2[7438],_mm256_xor_si256(c2[1587],_mm256_xor_si256(c2[1895],_mm256_xor_si256(c2[4677],_mm256_xor_si256(c2[4989],_mm256_xor_si256(c2[5297],_mm256_xor_si256(c2[1596],_mm256_xor_si256(c2[1904],_mm256_xor_si256(c2[3460],_mm256_xor_si256(c2[7465],_mm256_xor_si256(c2[6235],_mm256_xor_si256(c2[6543],_mm256_xor_si256(c2[3472],_mm256_xor_si256(c2[8097],_mm256_xor_si256(c2[8405],_mm256_xor_si256(c2[4089],_mm256_xor_si256(c2[4397],_mm256_xor_si256(c2[9342],_mm256_xor_si256(c2[9648],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[4414],_mm256_xor_si256(c2[4722],_mm256_xor_si256(c2[1964],_mm256_xor_si256(c2[7816],_mm256_xor_si256(c2[8124],_mm256_xor_si256(c2[5040],_mm256_xor_si256(c2[5348],_mm256_xor_si256(c2[434],_mm256_xor_si256(c2[7520],_mm256_xor_si256(c2[5367],_mm256_xor_si256(c2[5675],_mm256_xor_si256(c2[4458],_mm256_xor_si256(c2[1990],_mm256_xor_si256(c2[2298],_mm256_xor_si256(c2[757],_mm256_xor_si256(c2[1065],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[4780],_mm256_xor_si256(c2[8474],_mm256_xor_si256(c2[8782],_mm256_xor_si256(c2[6944],_mm256_xor_si256(c2[9410],_mm256_xor_si256(c2[6642],_mm256_xor_si256(c2[6950],_mm256_xor_si256(c2[7580],_mm256_xor_si256(c2[4188],_mm256_xor_si256(c2[4496],_mm256_xor_si256(c2[6038],_mm256_xor_si256(c2[6346],_mm256_xor_si256(c2[5126],_mm256_xor_si256(c2[6978],_mm256_xor_si256(c2[7286],_mm256_xor_si256(c2[1738],_mm256_xor_si256(c2[2046],_mm256_xor_si256(c2[4830],_mm256_xor_si256(c2[3290],_mm256_xor_si256(c2[4216],_mm256_xor_si256(c2[4524],_mm256_xor_si256(c2[2382],_mm256_xor_si256(c2[7311],_mm256_xor_si256(c2[227],_mm256_xor_si256(c2[535],_mm256_xor_si256(c2[1168],_mm256_xor_si256(c2[2092],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[3320],_mm256_xor_si256(c2[3628],_mm256_xor_si256(c2[4568],_mm256_xor_si256(c2[6723],_mm256_xor_si256(c2[7031],_mm256_xor_si256(c2[1179],_mm256_xor_si256(c2[1487],_mm256_xor_si256(c2[2428],_mm256_xor_si256(c2[267],_mm256_xor_si256(c2[9820],_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[3055],_mm256_xor_si256(c2[8290],_mm256_xor_si256(c2[8598],_mm256_xor_si256(c2[9520],_mm256_xor_si256(c2[9828],_mm256_xor_si256(c2[5840],_mm256_xor_si256(c2[8923],_mm256_xor_si256(c2[9538],c2[9846]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 3
d2[21]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[4316],_mm256_xor_si256(c2[4934],_mm256_xor_si256(c2[2778],_mm256_xor_si256(c2[3086],_mm256_xor_si256(c2[5250],_mm256_xor_si256(c2[3716],_mm256_xor_si256(c2[5558],_mm256_xor_si256(c2[5866],_mm256_xor_si256(c2[9578],_mm256_xor_si256(c2[4341],_mm256_xor_si256(c2[29],_mm256_xor_si256(c2[8668],_mm256_xor_si256(c2[7438],_mm256_xor_si256(c2[1587],_mm256_xor_si256(c2[1895],_mm256_xor_si256(c2[4677],_mm256_xor_si256(c2[5297],_mm256_xor_si256(c2[1596],_mm256_xor_si256(c2[1904],_mm256_xor_si256(c2[3460],_mm256_xor_si256(c2[7465],_mm256_xor_si256(c2[6543],_mm256_xor_si256(c2[3472],_mm256_xor_si256(c2[8405],_mm256_xor_si256(c2[4089],_mm256_xor_si256(c2[4397],_mm256_xor_si256(c2[9342],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[4414],_mm256_xor_si256(c2[4722],_mm256_xor_si256(c2[1964],_mm256_xor_si256(c2[8124],_mm256_xor_si256(c2[5040],_mm256_xor_si256(c2[5348],_mm256_xor_si256(c2[434],_mm256_xor_si256(c2[7520],_mm256_xor_si256(c2[5675],_mm256_xor_si256(c2[4458],_mm256_xor_si256(c2[2298],_mm256_xor_si256(c2[757],_mm256_xor_si256(c2[1065],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[4780],_mm256_xor_si256(c2[8474],_mm256_xor_si256(c2[8782],_mm256_xor_si256(c2[6944],_mm256_xor_si256(c2[9410],_mm256_xor_si256(c2[6642],_mm256_xor_si256(c2[6950],_mm256_xor_si256(c2[7580],_mm256_xor_si256(c2[4496],_mm256_xor_si256(c2[6038],_mm256_xor_si256(c2[6346],_mm256_xor_si256(c2[5126],_mm256_xor_si256(c2[7286],_mm256_xor_si256(c2[1738],_mm256_xor_si256(c2[2046],_mm256_xor_si256(c2[4830],_mm256_xor_si256(c2[3290],_mm256_xor_si256(c2[4524],_mm256_xor_si256(c2[2382],_mm256_xor_si256(c2[7311],_mm256_xor_si256(c2[227],_mm256_xor_si256(c2[535],_mm256_xor_si256(c2[1168],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[3320],_mm256_xor_si256(c2[3628],_mm256_xor_si256(c2[4568],_mm256_xor_si256(c2[7031],_mm256_xor_si256(c2[1179],_mm256_xor_si256(c2[1487],_mm256_xor_si256(c2[2428],_mm256_xor_si256(c2[267],_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[3055],_mm256_xor_si256(c2[8598],_mm256_xor_si256(c2[9520],_mm256_xor_si256(c2[9828],_mm256_xor_si256(c2[5840],_mm256_xor_si256(c2[8923],_mm256_xor_si256(c2[9538],c2[9846])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 4
d2[28]=_mm256_xor_si256(c2[3085],c2[3094]);
//row: 5
d2[35]=_mm256_xor_si256(c2[7396],_mm256_xor_si256(c2[1850],_mm256_xor_si256(c2[2468],_mm256_xor_si256(c2[620],_mm256_xor_si256(c2[1237],_mm256_xor_si256(c2[2791],_mm256_xor_si256(c2[1250],_mm256_xor_si256(c2[3407],_mm256_xor_si256(c2[8331],_mm256_xor_si256(c2[7112],_mm256_xor_si256(c2[1882],_mm256_xor_si256(c2[7425],_mm256_xor_si256(c2[6202],_mm256_xor_si256(c2[4972],_mm256_xor_si256(c2[9284],_mm256_xor_si256(c2[6820],_mm256_xor_si256(c2[2218],_mm256_xor_si256(c2[2831],_mm256_xor_si256(c2[9300],_mm256_xor_si256(c2[994],_mm256_xor_si256(c2[4999],_mm256_xor_si256(c2[4077],_mm256_xor_si256(c2[1013],_mm256_xor_si256(c2[5939],_mm256_xor_si256(c2[1938],_mm256_xor_si256(c2[6876],_mm256_xor_si256(c2[7490],_mm256_xor_si256(c2[2256],_mm256_xor_si256(c2[9353],_mm256_xor_si256(c2[5658],_mm256_xor_si256(c2[2889],_mm256_xor_si256(c2[7830],_mm256_xor_si256(c2[5054],_mm256_xor_si256(c2[3209],_mm256_xor_si256(c2[1992],_mm256_xor_si256(c2[9694],_mm256_xor_si256(c2[8461],_mm256_xor_si256(c2[5394],_mm256_xor_si256(c2[2314],_mm256_xor_si256(c2[6316],_mm256_xor_si256(c2[4485],_mm256_xor_si256(c2[6944],_mm256_xor_si256(c2[4484],_mm256_xor_si256(c2[5098],_mm256_xor_si256(c2[5114],_mm256_xor_si256(c2[2030],_mm256_xor_si256(c2[3880],_mm256_xor_si256(c2[2660],_mm256_xor_si256(c2[4820],_mm256_xor_si256(c2[9442],_mm256_xor_si256(c2[2371],_mm256_xor_si256(c2[831],_mm256_xor_si256(c2[2058],_mm256_xor_si256(c2[9778],_mm256_xor_si256(c2[4845],_mm256_xor_si256(c2[7924],_mm256_xor_si256(c2[7005],_mm256_xor_si256(c2[8557],_mm256_xor_si256(c2[9789],_mm256_xor_si256(c2[1162],_mm256_xor_si256(c2[2102],_mm256_xor_si256(c2[4565],_mm256_xor_si256(c2[8876],_mm256_xor_si256(c2[9817],_mm256_xor_si256(c2[7663],_mm256_xor_si256(c2[7662],_mm256_xor_si256(c2[589],_mm256_xor_si256(c2[6132],_mm256_xor_si256(c2[7369],_mm256_xor_si256(c2[3374],_mm256_xor_si256(c2[6457],_mm256_xor_si256(c2[7380],c2[914]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 6
d2[42]=_mm256_xor_si256(c2[9244],_mm256_xor_si256(c2[7171],_mm256_xor_si256(c2[5379],_mm256_xor_si256(c2[6622],_mm256_xor_si256(c2[9731],_mm256_xor_si256(c2[6091],_mm256_xor_si256(c2[2720],c2[6443])))))));
//row: 7
d2[49]=_mm256_xor_si256(c2[5236],_mm256_xor_si256(c2[3712],_mm256_xor_si256(c2[2523],_mm256_xor_si256(c2[1333],_mm256_xor_si256(c2[6892],c2[9440])))));
//row: 8
d2[56]=_mm256_xor_si256(c2[3389],_mm256_xor_si256(c2[2778],_mm256_xor_si256(c2[7705],_mm256_xor_si256(c2[7087],_mm256_xor_si256(c2[8316],_mm256_xor_si256(c2[7397],_mm256_xor_si256(c2[7705],_mm256_xor_si256(c2[6468],_mm256_xor_si256(c2[5549],_mm256_xor_si256(c2[5857],_mm256_xor_si256(c2[309],_mm256_xor_si256(c2[8639],_mm256_xor_si256(c2[8028],_mm256_xor_si256(c2[7098],_mm256_xor_si256(c2[6179],_mm256_xor_si256(c2[6487],_mm256_xor_si256(c2[9255],_mm256_xor_si256(c2[8336],_mm256_xor_si256(c2[8644],_mm256_xor_si256(c2[9564],_mm256_xor_si256(c2[3112],_mm256_xor_si256(c2[2494],_mm256_xor_si256(c2[7730],_mm256_xor_si256(c2[7112],_mm256_xor_si256(c2[3418],_mm256_xor_si256(c2[2492],_mm256_xor_si256(c2[2800],_mm256_xor_si256(c2[2202],_mm256_xor_si256(c2[1584],_mm256_xor_si256(c2[972],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[5284],_mm256_xor_si256(c2[4358],_mm256_xor_si256(c2[4666],_mm256_xor_si256(c2[1274],_mm256_xor_si256(c2[8066],_mm256_xor_si256(c2[7448],_mm256_xor_si256(c2[8686],_mm256_xor_si256(c2[7760],_mm256_xor_si256(c2[8068],_mm256_xor_si256(c2[5293],_mm256_xor_si256(c2[4374],_mm256_xor_si256(c2[4682],_mm256_xor_si256(c2[6849],_mm256_xor_si256(c2[6231],_mm256_xor_si256(c2[999],_mm256_xor_si256(c2[381],_mm256_xor_si256(c2[70],_mm256_xor_si256(c2[9006],_mm256_xor_si256(c2[9314],_mm256_xor_si256(c2[6861],_mm256_xor_si256(c2[6250],_mm256_xor_si256(c2[1932],_mm256_xor_si256(c2[1013],_mm256_xor_si256(c2[1321],_mm256_xor_si256(c2[7786],_mm256_xor_si256(c2[6860],_mm256_xor_si256(c2[7168],_mm256_xor_si256(c2[2876],_mm256_xor_si256(c2[2258],_mm256_xor_si256(c2[3490],_mm256_xor_si256(c2[2564],_mm256_xor_si256(c2[2872],_mm256_xor_si256(c2[8111],_mm256_xor_si256(c2[7185],_mm256_xor_si256(c2[7493],_mm256_xor_si256(c2[5353],_mm256_xor_si256(c2[4735],_mm256_xor_si256(c2[1658],_mm256_xor_si256(c2[732],_mm256_xor_si256(c2[1040],_mm256_xor_si256(c2[8737],_mm256_xor_si256(c2[7818],_mm256_xor_si256(c2[8126],_mm256_xor_si256(c2[3823],_mm256_xor_si256(c2[3212],_mm256_xor_si256(c2[1054],_mm256_xor_si256(c2[436],_mm256_xor_si256(c2[9064],_mm256_xor_si256(c2[8138],_mm256_xor_si256(c2[8446],_mm256_xor_si256(c2[7840],_mm256_xor_si256(c2[7229],_mm256_xor_si256(c2[5687],_mm256_xor_si256(c2[4761],_mm256_xor_si256(c2[5069],_mm256_xor_si256(c2[4454],_mm256_xor_si256(c2[3528],_mm256_xor_si256(c2[3836],_mm256_xor_si256(c2[1387],_mm256_xor_si256(c2[776],_mm256_xor_si256(c2[8162],_mm256_xor_si256(c2[7551],_mm256_xor_si256(c2[2316],_mm256_xor_si256(c2[1390],_mm256_xor_si256(c2[1698],_mm256_xor_si256(c2[478],_mm256_xor_si256(c2[9722],_mm256_xor_si256(c2[2944],_mm256_xor_si256(c2[2326],_mm256_xor_si256(c2[477],_mm256_xor_si256(c2[9413],_mm256_xor_si256(c2[9721],_mm256_xor_si256(c2[7874],_mm256_xor_si256(c2[1107],_mm256_xor_si256(c2[496],_mm256_xor_si256(c2[7885],_mm256_xor_si256(c2[6959],_mm256_xor_si256(c2[7267],_mm256_xor_si256(c2[9735],_mm256_xor_si256(c2[8809],_mm256_xor_si256(c2[9117],_mm256_xor_si256(c2[8515],_mm256_xor_si256(c2[7897],_mm256_xor_si256(c2[813],_mm256_xor_si256(c2[9749],_mm256_xor_si256(c2[202],_mm256_xor_si256(c2[5435],_mm256_xor_si256(c2[4509],_mm256_xor_si256(c2[4817],_mm256_xor_si256(c2[8219],_mm256_xor_si256(c2[7608],_mm256_xor_si256(c2[6679],_mm256_xor_si256(c2[6068],_mm256_xor_si256(c2[7913],_mm256_xor_si256(c2[6987],_mm256_xor_si256(c2[7295],_mm256_xor_si256(c2[5771],_mm256_xor_si256(c2[5153],_mm256_xor_si256(c2[845],_mm256_xor_si256(c2[227],_mm256_xor_si256(c2[3924],_mm256_xor_si256(c2[2998],_mm256_xor_si256(c2[3306],_mm256_xor_si256(c2[3926],_mm256_xor_si256(c2[4550],_mm256_xor_si256(c2[3939],_mm256_xor_si256(c2[5782],_mm256_xor_si256(c2[4863],_mm256_xor_si256(c2[5171],_mm256_xor_si256(c2[7017],_mm256_xor_si256(c2[6091],_mm256_xor_si256(c2[6399],_mm256_xor_si256(c2[7957],_mm256_xor_si256(c2[7339],_mm256_xor_si256(c2[565],_mm256_xor_si256(c2[9494],_mm256_xor_si256(c2[9802],_mm256_xor_si256(c2[4876],_mm256_xor_si256(c2[3950],_mm256_xor_si256(c2[4258],_mm256_xor_si256(c2[5810],_mm256_xor_si256(c2[5199],_mm256_xor_si256(c2[3656],_mm256_xor_si256(c2[3038],_mm256_xor_si256(c2[3655],_mm256_xor_si256(c2[2736],_mm256_xor_si256(c2[3044],_mm256_xor_si256(c2[2423],_mm256_xor_si256(c2[6444],_mm256_xor_si256(c2[5826],_mm256_xor_si256(c2[2132],_mm256_xor_si256(c2[1206],_mm256_xor_si256(c2[1514],_mm256_xor_si256(c2[3362],_mm256_xor_si256(c2[2436],_mm256_xor_si256(c2[2744],_mm256_xor_si256(c2[9229],_mm256_xor_si256(c2[8611],_mm256_xor_si256(c2[2450],_mm256_xor_si256(c2[1839],_mm256_xor_si256(c2[3380],_mm256_xor_si256(c2[2454],_mm256_xor_si256(c2[2762],c2[8303]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 9
d2[63]=_mm256_xor_si256(c2[2772],_mm256_xor_si256(c2[1555],_mm256_xor_si256(c2[6614],_mm256_xor_si256(c2[2929],_mm256_xor_si256(c2[7884],_mm256_xor_si256(c2[7943],_mm256_xor_si256(c2[4259],c2[8294])))))));
//row: 10
d2[70]=_mm256_xor_si256(c2[5560],_mm256_xor_si256(c2[1573],_mm256_xor_si256(c2[4373],_mm256_xor_si256(c2[5950],_mm256_xor_si256(c2[734],c2[2355])))));
//row: 11
d2[77]=_mm256_xor_si256(c2[5854],_mm256_xor_si256(c2[2470],_mm256_xor_si256(c2[2778],_mm256_xor_si256(c2[308],_mm256_xor_si256(c2[7087],_mm256_xor_si256(c2[926],_mm256_xor_si256(c2[7705],_mm256_xor_si256(c2[8933],_mm256_xor_si256(c2[5857],_mm256_xor_si256(c2[6161],_mm256_xor_si256(c2[1249],_mm256_xor_si256(c2[7720],_mm256_xor_si256(c2[8028],_mm256_xor_si256(c2[9563],_mm256_xor_si256(c2[6487],_mm256_xor_si256(c2[1865],_mm256_xor_si256(c2[8644],_mm256_xor_si256(c2[3402],_mm256_xor_si256(c2[5577],_mm256_xor_si256(c2[2186],_mm256_xor_si256(c2[2494],_mm256_xor_si256(c2[340],_mm256_xor_si256(c2[7112],_mm256_xor_si256(c2[5883],_mm256_xor_si256(c2[2800],_mm256_xor_si256(c2[4667],_mm256_xor_si256(c2[1276],_mm256_xor_si256(c2[1584],_mm256_xor_si256(c2[3430],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[7742],_mm256_xor_si256(c2[4666],_mm256_xor_si256(c2[676],_mm256_xor_si256(c2[7448],_mm256_xor_si256(c2[1289],_mm256_xor_si256(c2[8068],_mm256_xor_si256(c2[7758],_mm256_xor_si256(c2[4682],_mm256_xor_si256(c2[9314],_mm256_xor_si256(c2[5923],_mm256_xor_si256(c2[6231],_mm256_xor_si256(c2[3464],_mm256_xor_si256(c2[381],_mm256_xor_si256(c2[2535],_mm256_xor_si256(c2[9314],_mm256_xor_si256(c2[9326],_mm256_xor_si256(c2[5942],_mm256_xor_si256(c2[6250],_mm256_xor_si256(c2[4397],_mm256_xor_si256(c2[1321],_mm256_xor_si256(c2[396],_mm256_xor_si256(c2[7168],_mm256_xor_si256(c2[5334],_mm256_xor_si256(c2[2258],_mm256_xor_si256(c2[5955],_mm256_xor_si256(c2[2872],_mm256_xor_si256(c2[714],_mm256_xor_si256(c2[7493],_mm256_xor_si256(c2[7818],_mm256_xor_si256(c2[4735],_mm256_xor_si256(c2[4116],_mm256_xor_si256(c2[1040],_mm256_xor_si256(c2[1347],_mm256_xor_si256(c2[8126],_mm256_xor_si256(c2[6288],_mm256_xor_si256(c2[2904],_mm256_xor_si256(c2[3212],_mm256_xor_si256(c2[3519],_mm256_xor_si256(c2[436],_mm256_xor_si256(c2[1667],_mm256_xor_si256(c2[8446],_mm256_xor_si256(c2[450],_mm256_xor_si256(c2[6921],_mm256_xor_si256(c2[7229],_mm256_xor_si256(c2[8152],_mm256_xor_si256(c2[5069],_mm256_xor_si256(c2[6919],_mm256_xor_si256(c2[3836],_mm256_xor_si256(c2[3852],_mm256_xor_si256(c2[468],_mm256_xor_si256(c2[776],_mm256_xor_si256(c2[772],_mm256_xor_si256(c2[7551],_mm256_xor_si256(c2[4774],_mm256_xor_si256(c2[1698],_mm256_xor_si256(c2[2943],_mm256_xor_si256(c2[9414],_mm256_xor_si256(c2[9722],_mm256_xor_si256(c2[5409],_mm256_xor_si256(c2[2326],_mm256_xor_si256(c2[2942],_mm256_xor_si256(c2[9721],_mm256_xor_si256(c2[784],_mm256_xor_si256(c2[3572],_mm256_xor_si256(c2[188],_mm256_xor_si256(c2[496],_mm256_xor_si256(c2[495],_mm256_xor_si256(c2[7267],_mm256_xor_si256(c2[2338],_mm256_xor_si256(c2[9117],_mm256_xor_si256(c2[1125],_mm256_xor_si256(c2[7897],_mm256_xor_si256(c2[3278],_mm256_xor_si256(c2[202],_mm256_xor_si256(c2[7900],_mm256_xor_si256(c2[4817],_mm256_xor_si256(c2[829],_mm256_xor_si256(c2[7300],_mm256_xor_si256(c2[7608],_mm256_xor_si256(c2[9144],_mm256_xor_si256(c2[6068],_mm256_xor_si256(c2[523],_mm256_xor_si256(c2[7295],_mm256_xor_si256(c2[8236],_mm256_xor_si256(c2[4845],_mm256_xor_si256(c2[5153],_mm256_xor_si256(c2[3310],_mm256_xor_si256(c2[227],_mm256_xor_si256(c2[6389],_mm256_xor_si256(c2[3306],_mm256_xor_si256(c2[1149],_mm256_xor_si256(c2[7015],_mm256_xor_si256(c2[3939],_mm256_xor_si256(c2[8247],_mm256_xor_si256(c2[5171],_mm256_xor_si256(c2[9482],_mm256_xor_si256(c2[6399],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[7031],_mm256_xor_si256(c2[7339],_mm256_xor_si256(c2[3030],_mm256_xor_si256(c2[9802],_mm256_xor_si256(c2[7341],_mm256_xor_si256(c2[4258],_mm256_xor_si256(c2[8275],_mm256_xor_si256(c2[4891],_mm256_xor_si256(c2[5199],_mm256_xor_si256(c2[6121],_mm256_xor_si256(c2[3038],_mm256_xor_si256(c2[6120],_mm256_xor_si256(c2[3044],_mm256_xor_si256(c2[8909],_mm256_xor_si256(c2[5518],_mm256_xor_si256(c2[5826],_mm256_xor_si256(c2[4597],_mm256_xor_si256(c2[1514],_mm256_xor_si256(c2[5827],_mm256_xor_si256(c2[2744],_mm256_xor_si256(c2[1839],_mm256_xor_si256(c2[8303],_mm256_xor_si256(c2[8611],_mm256_xor_si256(c2[4915],_mm256_xor_si256(c2[1839],_mm256_xor_si256(c2[5838],_mm256_xor_si256(c2[2762],c2[295])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 12
d2[84]=_mm256_xor_si256(c2[4316],_mm256_xor_si256(c2[4639],_mm256_xor_si256(c2[2608],_mm256_xor_si256(c2[1078],_mm256_xor_si256(c2[8806],c2[7033])))));
//row: 13
d2[91]=_mm256_xor_si256(c2[4006],_mm256_xor_si256(c2[4314],_mm256_xor_si256(c2[8630],_mm256_xor_si256(c2[9241],_mm256_xor_si256(c2[7393],_mm256_xor_si256(c2[5238],_mm256_xor_si256(c2[9256],_mm256_xor_si256(c2[9564],_mm256_xor_si256(c2[8023],_mm256_xor_si256(c2[325],_mm256_xor_si256(c2[3729],_mm256_xor_si256(c2[4037],_mm256_xor_si256(c2[8655],_mm256_xor_si256(c2[4343],_mm256_xor_si256(c2[2819],_mm256_xor_si256(c2[3127],_mm256_xor_si256(c2[1890],_mm256_xor_si256(c2[6202],_mm256_xor_si256(c2[7435],_mm256_xor_si256(c2[8991],_mm256_xor_si256(c2[9604],_mm256_xor_si256(c2[6218],_mm256_xor_si256(c2[7466],_mm256_xor_si256(c2[7774],_mm256_xor_si256(c2[1924],_mm256_xor_si256(c2[995],_mm256_xor_si256(c2[7478],_mm256_xor_si256(c2[7786],_mm256_xor_si256(c2[2857],_mm256_xor_si256(c2[8711],_mm256_xor_si256(c2[3794],_mm256_xor_si256(c2[4415],_mm256_xor_si256(c2[9036],_mm256_xor_si256(c2[2564],_mm256_xor_si256(c2[6278],_mm256_xor_si256(c2[2576],_mm256_xor_si256(c2[9662],_mm256_xor_si256(c2[4440],_mm256_xor_si256(c2[4748],_mm256_xor_si256(c2[1979],_mm256_xor_si256(c2[127],_mm256_xor_si256(c2[8457],_mm256_xor_si256(c2[8765],_mm256_xor_si256(c2[6612],_mm256_xor_si256(c2[5379],_mm256_xor_si256(c2[2004],_mm256_xor_si256(c2[2312],_mm256_xor_si256(c2[9087],_mm256_xor_si256(c2[3234],_mm256_xor_si256(c2[1095],_mm256_xor_si256(c2[1403],_mm256_xor_si256(c2[3869],_mm256_xor_si256(c2[1402],_mm256_xor_si256(c2[1724],_mm256_xor_si256(c2[2032],_mm256_xor_si256(c2[8810],_mm256_xor_si256(c2[798],_mm256_xor_si256(c2[9440],_mm256_xor_si256(c2[1738],_mm256_xor_si256(c2[6360],_mm256_xor_si256(c2[8836],_mm256_xor_si256(c2[9144],_mm256_xor_si256(c2[7604],_mm256_xor_si256(c2[8838],_mm256_xor_si256(c2[6388],_mm256_xor_si256(c2[6696],_mm256_xor_si256(c2[1770],_mm256_xor_si256(c2[4849],_mm256_xor_si256(c2[5475],_mm256_xor_si256(c2[6707],_mm256_xor_si256(c2[7942],_mm256_xor_si256(c2[8574],_mm256_xor_si256(c2[8882],_mm256_xor_si256(c2[1490],_mm256_xor_si256(c2[5801],_mm256_xor_si256(c2[6427],_mm256_xor_si256(c2[6735],_mm256_xor_si256(c2[4581],_mm256_xor_si256(c2[4580],_mm256_xor_si256(c2[7061],_mm256_xor_si256(c2[7369],_mm256_xor_si256(c2[3057],_mm256_xor_si256(c2[4287],_mm256_xor_si256(c2[7986],_mm256_xor_si256(c2[9846],_mm256_xor_si256(c2[299],_mm256_xor_si256(c2[3375],c2[4298])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 14
d2[98]=_mm256_xor_si256(c2[4312],_mm256_xor_si256(c2[4793],_mm256_xor_si256(c2[6068],_mm256_xor_si256(c2[9777],_mm256_xor_si256(c2[6091],c2[3683])))));
//row: 15
d2[105]=_mm256_xor_si256(c2[5238],_mm256_xor_si256(c2[9554],_mm256_xor_si256(c2[310],_mm256_xor_si256(c2[8009],_mm256_xor_si256(c2[8317],_mm256_xor_si256(c2[8010],_mm256_xor_si256(c2[633],_mm256_xor_si256(c2[8947],_mm256_xor_si256(c2[941],_mm256_xor_si256(c2[1249],_mm256_xor_si256(c2[7409],_mm256_xor_si256(c2[4961],_mm256_xor_si256(c2[9579],_mm256_xor_si256(c2[5267],_mm256_xor_si256(c2[4051],_mm256_xor_si256(c2[2814],_mm256_xor_si256(c2[6818],_mm256_xor_si256(c2[7126],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[673],_mm256_xor_si256(c2[6834],_mm256_xor_si256(c2[7142],_mm256_xor_si256(c2[8698],_mm256_xor_si256(c2[2848],_mm256_xor_si256(c2[1919],_mm256_xor_si256(c2[8710],_mm256_xor_si256(c2[3781],_mm256_xor_si256(c2[9327],_mm256_xor_si256(c2[9635],_mm256_xor_si256(c2[4718],_mm256_xor_si256(c2[5339],_mm256_xor_si256(c2[9652],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[7202],_mm256_xor_si256(c2[3500],_mm256_xor_si256(c2[423],_mm256_xor_si256(c2[731],_mm256_xor_si256(c2[5672],_mm256_xor_si256(c2[2903],_mm256_xor_si256(c2[1051],_mm256_xor_si256(c2[9689],_mm256_xor_si256(c2[7536],_mm256_xor_si256(c2[5995],_mm256_xor_si256(c2[6303],_mm256_xor_si256(c2[1068],_mm256_xor_si256(c2[3236],_mm256_xor_si256(c2[156],_mm256_xor_si256(c2[3850],_mm256_xor_si256(c2[4158],_mm256_xor_si256(c2[2327],_mm256_xor_si256(c2[4793],_mm256_xor_si256(c2[2018],_mm256_xor_si256(c2[2326],_mm256_xor_si256(c2[2956],_mm256_xor_si256(c2[9734],_mm256_xor_si256(c2[1414],_mm256_xor_si256(c2[1722],_mm256_xor_si256(c2[5424],_mm256_xor_si256(c2[509],_mm256_xor_si256(c2[2662],_mm256_xor_si256(c2[6976],_mm256_xor_si256(c2[7284],_mm256_xor_si256(c2[213],_mm256_xor_si256(c2[8528],_mm256_xor_si256(c2[9762],_mm256_xor_si256(c2[7620],_mm256_xor_si256(c2[2694],_mm256_xor_si256(c2[5465],_mm256_xor_si256(c2[5773],_mm256_xor_si256(c2[6399],_mm256_xor_si256(c2[7631],_mm256_xor_si256(c2[8558],_mm256_xor_si256(c2[8866],_mm256_xor_si256(c2[9806],_mm256_xor_si256(c2[2414],_mm256_xor_si256(c2[6417],_mm256_xor_si256(c2[6725],_mm256_xor_si256(c2[5494],_mm256_xor_si256(c2[7659],_mm256_xor_si256(c2[5505],_mm256_xor_si256(c2[5504],_mm256_xor_si256(c2[8293],_mm256_xor_si256(c2[3981],_mm256_xor_si256(c2[4903],_mm256_xor_si256(c2[5211],_mm256_xor_si256(c2[1223],_mm256_xor_si256(c2[4299],_mm256_xor_si256(c2[4914],c2[5222]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 16
d2[112]=_mm256_xor_si256(c2[1235],_mm256_xor_si256(c2[5544],_mm256_xor_si256(c2[6162],_mm256_xor_si256(c2[4314],_mm256_xor_si256(c2[6485],_mm256_xor_si256(c2[4944],_mm256_xor_si256(c2[7101],_mm256_xor_si256(c2[8026],_mm256_xor_si256(c2[958],_mm256_xor_si256(c2[5576],_mm256_xor_si256(c2[1264],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[8666],_mm256_xor_si256(c2[3123],_mm256_xor_si256(c2[1279],_mm256_xor_si256(c2[5912],_mm256_xor_si256(c2[6525],_mm256_xor_si256(c2[3139],_mm256_xor_si256(c2[4695],_mm256_xor_si256(c2[8700],_mm256_xor_si256(c2[7771],_mm256_xor_si256(c2[4707],_mm256_xor_si256(c2[9633],_mm256_xor_si256(c2[5632],_mm256_xor_si256(c2[715],_mm256_xor_si256(c2[1336],_mm256_xor_si256(c2[5950],_mm256_xor_si256(c2[3192],_mm256_xor_si256(c2[9352],_mm256_xor_si256(c2[6583],_mm256_xor_si256(c2[1669],_mm256_xor_si256(c2[8755],_mm256_xor_si256(c2[6903],_mm256_xor_si256(c2[5686],_mm256_xor_si256(c2[3533],_mm256_xor_si256(c2[2300],_mm256_xor_si256(c2[9088],_mm256_xor_si256(c2[6008],_mm256_xor_si256(c2[155],_mm256_xor_si256(c2[3543],_mm256_xor_si256(c2[8179],_mm256_xor_si256(c2[790],_mm256_xor_si256(c2[8178],_mm256_xor_si256(c2[8808],_mm256_xor_si256(c2[5731],_mm256_xor_si256(c2[7574],_mm256_xor_si256(c2[6361],_mm256_xor_si256(c2[8514],_mm256_xor_si256(c2[3281],_mm256_xor_si256(c2[6065],_mm256_xor_si256(c2[4525],_mm256_xor_si256(c2[5759],_mm256_xor_si256(c2[3617],_mm256_xor_si256(c2[8546],_mm256_xor_si256(c2[1770],_mm256_xor_si256(c2[2396],_mm256_xor_si256(c2[3628],_mm256_xor_si256(c2[4863],_mm256_xor_si256(c2[5796],_mm256_xor_si256(c2[8266],_mm256_xor_si256(c2[2722],_mm256_xor_si256(c2[3656],_mm256_xor_si256(c2[1502],_mm256_xor_si256(c2[1501],_mm256_xor_si256(c2[4290],_mm256_xor_si256(c2[9833],_mm256_xor_si256(c2[1208],_mm256_xor_si256(c2[9217],_mm256_xor_si256(c2[7075],_mm256_xor_si256(c2[296],c2[1219]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 17
d2[119]=_mm256_xor_si256(c2[7393],_mm256_xor_si256(c2[4511],_mm256_xor_si256(c2[2694],_mm256_xor_si256(c2[9787],c2[1526]))));
//row: 18
d2[126]=_mm256_xor_si256(c2[2176],_mm256_xor_si256(c2[4483],_mm256_xor_si256(c2[2652],_mm256_xor_si256(c2[4876],c2[8279]))));
//row: 19
d2[133]=_mm256_xor_si256(c2[2464],_mm256_xor_si256(c2[1862],_mm256_xor_si256(c2[2257],_mm256_xor_si256(c2[1966],c2[2604]))));
//row: 20
d2[140]=_mm256_xor_si256(c2[6781],_mm256_xor_si256(c2[1235],_mm256_xor_si256(c2[1853],_mm256_xor_si256(c2[5],_mm256_xor_si256(c2[2775],_mm256_xor_si256(c2[2176],_mm256_xor_si256(c2[635],_mm256_xor_si256(c2[2792],_mm256_xor_si256(c2[6497],_mm256_xor_si256(c2[1260],_mm256_xor_si256(c2[6810],_mm256_xor_si256(c2[5587],_mm256_xor_si256(c2[4357],_mm256_xor_si256(c2[8669],_mm256_xor_si256(c2[5592],_mm256_xor_si256(c2[1596],_mm256_xor_si256(c2[2216],_mm256_xor_si256(c2[8685],_mm256_xor_si256(c2[379],_mm256_xor_si256(c2[4384],_mm256_xor_si256(c2[3462],_mm256_xor_si256(c2[398],_mm256_xor_si256(c2[5324],_mm256_xor_si256(c2[1316],_mm256_xor_si256(c2[6261],_mm256_xor_si256(c2[6875],_mm256_xor_si256(c2[1641],_mm256_xor_si256(c2[8738],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[2274],_mm256_xor_si256(c2[7215],_mm256_xor_si256(c2[4439],_mm256_xor_si256(c2[2594],_mm256_xor_si256(c2[7829],_mm256_xor_si256(c2[1377],_mm256_xor_si256(c2[9072],_mm256_xor_si256(c2[7846],_mm256_xor_si256(c2[4779],_mm256_xor_si256(c2[1699],_mm256_xor_si256(c2[5701],_mm256_xor_si256(c2[6936],_mm256_xor_si256(c2[3870],_mm256_xor_si256(c2[6329],_mm256_xor_si256(c2[3869],_mm256_xor_si256(c2[4499],_mm256_xor_si256(c2[1415],_mm256_xor_si256(c2[3265],_mm256_xor_si256(c2[2045],_mm256_xor_si256(c2[4205],_mm256_xor_si256(c2[8820],_mm256_xor_si256(c2[1756],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[1443],_mm256_xor_si256(c2[9156],_mm256_xor_si256(c2[4230],_mm256_xor_si256(c2[7309],_mm256_xor_si256(c2[7942],_mm256_xor_si256(c2[9174],_mm256_xor_si256(c2[547],_mm256_xor_si256(c2[1487],_mm256_xor_si256(c2[3950],_mm256_xor_si256(c2[8261],_mm256_xor_si256(c2[9202],_mm256_xor_si256(c2[7048],_mm256_xor_si256(c2[7047],_mm256_xor_si256(c2[9829],_mm256_xor_si256(c2[5517],_mm256_xor_si256(c2[6754],_mm256_xor_si256(c2[2759],_mm256_xor_si256(c2[5842],c2[6765]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 21
d2[147]=_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[998],_mm256_xor_si256(c2[8854],_mm256_xor_si256(c2[5825],c2[3377]))));
//row: 22
d2[154]=_mm256_xor_si256(c2[6469],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[1106],c2[6402])));
//row: 23
d2[161]=_mm256_xor_si256(c2[7408],_mm256_xor_si256(c2[3422],_mm256_xor_si256(c2[2609],c2[8263])));
//row: 24
d2[168]=_mm256_xor_si256(c2[8319],_mm256_xor_si256(c2[2773],_mm256_xor_si256(c2[3391],_mm256_xor_si256(c2[1543],_mm256_xor_si256(c2[5237],_mm256_xor_si256(c2[3714],_mm256_xor_si256(c2[2173],_mm256_xor_si256(c2[4330],_mm256_xor_si256(c2[8042],_mm256_xor_si256(c2[2805],_mm256_xor_si256(c2[8348],_mm256_xor_si256(c2[7132],_mm256_xor_si256(c2[5895],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[8978],_mm256_xor_si256(c2[3141],_mm256_xor_si256(c2[3754],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[58],_mm256_xor_si256(c2[1924],_mm256_xor_si256(c2[5922],_mm256_xor_si256(c2[5000],_mm256_xor_si256(c2[1936],_mm256_xor_si256(c2[6862],_mm256_xor_si256(c2[2861],_mm256_xor_si256(c2[7799],_mm256_xor_si256(c2[8420],_mm256_xor_si256(c2[3179],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[6581],_mm256_xor_si256(c2[3812],_mm256_xor_si256(c2[8753],_mm256_xor_si256(c2[5984],_mm256_xor_si256(c2[4132],_mm256_xor_si256(c2[2915],_mm256_xor_si256(c2[762],_mm256_xor_si256(c2[9384],_mm256_xor_si256(c2[6317],_mm256_xor_si256(c2[3237],_mm256_xor_si256(c2[7239],_mm256_xor_si256(c2[468],_mm256_xor_si256(c2[5408],_mm256_xor_si256(c2[7874],_mm256_xor_si256(c2[5407],_mm256_xor_si256(c2[6037],_mm256_xor_si256(c2[2960],_mm256_xor_si256(c2[4803],_mm256_xor_si256(c2[3590],_mm256_xor_si256(c2[5743],_mm256_xor_si256(c2[510],_mm256_xor_si256(c2[3294],_mm256_xor_si256(c2[1754],_mm256_xor_si256(c2[2988],_mm256_xor_si256(c2[846],_mm256_xor_si256(c2[5768],_mm256_xor_si256(c2[8854],_mm256_xor_si256(c2[9480],_mm256_xor_si256(c2[857],_mm256_xor_si256(c2[2092],_mm256_xor_si256(c2[3025],_mm256_xor_si256(c2[5488],_mm256_xor_si256(c2[9806],_mm256_xor_si256(c2[885],_mm256_xor_si256(c2[8586],_mm256_xor_si256(c2[8585],_mm256_xor_si256(c2[1512],_mm256_xor_si256(c2[7062],_mm256_xor_si256(c2[8292],_mm256_xor_si256(c2[4304],_mm256_xor_si256(c2[7380],c2[8303]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 25
d2[175]=_mm256_xor_si256(c2[322],_mm256_xor_si256(c2[1937],_mm256_xor_si256(c2[408],c2[5434])));
//row: 26
d2[182]=_mm256_xor_si256(c2[3391],_mm256_xor_si256(c2[4961],_mm256_xor_si256(c2[6222],c2[9761])));
//row: 27
d2[189]=_mm256_xor_si256(c2[4948],_mm256_xor_si256(c2[4092],c2[4429]));
//row: 28
d2[196]=_mm256_xor_si256(c2[5548],_mm256_xor_si256(c2[7760],_mm256_xor_si256(c2[7972],c2[5841])));
//row: 29
d2[203]=_mm256_xor_si256(c2[1234],_mm256_xor_si256(c2[5550],_mm256_xor_si256(c2[6161],_mm256_xor_si256(c2[4005],_mm256_xor_si256(c2[4313],_mm256_xor_si256(c2[6484],_mm256_xor_si256(c2[4943],_mm256_xor_si256(c2[6792],_mm256_xor_si256(c2[7100],_mm256_xor_si256(c2[6794],_mm256_xor_si256(c2[957],_mm256_xor_si256(c2[5575],_mm256_xor_si256(c2[1263],_mm256_xor_si256(c2[47],_mm256_xor_si256(c2[8672],_mm256_xor_si256(c2[2814],_mm256_xor_si256(c2[3122],_mm256_xor_si256(c2[5911],_mm256_xor_si256(c2[6524],_mm256_xor_si256(c2[2830],_mm256_xor_si256(c2[3138],_mm256_xor_si256(c2[4694],_mm256_xor_si256(c2[8699],_mm256_xor_si256(c2[7770],_mm256_xor_si256(c2[4706],_mm256_xor_si256(c2[9632],_mm256_xor_si256(c2[5323],_mm256_xor_si256(c2[5631],_mm256_xor_si256(c2[714],_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[5648],_mm256_xor_si256(c2[5956],_mm256_xor_si256(c2[3198],_mm256_xor_si256(c2[9358],_mm256_xor_si256(c2[6274],_mm256_xor_si256(c2[6582],_mm256_xor_si256(c2[1668],_mm256_xor_si256(c2[8754],_mm256_xor_si256(c2[6902],_mm256_xor_si256(c2[5685],_mm256_xor_si256(c2[3532],_mm256_xor_si256(c2[1991],_mm256_xor_si256(c2[2299],_mm256_xor_si256(c2[9087],_mm256_xor_si256(c2[6007],_mm256_xor_si256(c2[9708],_mm256_xor_si256(c2[154],_mm256_xor_si256(c2[8178],_mm256_xor_si256(c2[789],_mm256_xor_si256(c2[7869],_mm256_xor_si256(c2[8177],_mm256_xor_si256(c2[8807],_mm256_xor_si256(c2[5730],_mm256_xor_si256(c2[7272],_mm256_xor_si256(c2[7580],_mm256_xor_si256(c2[6360],_mm256_xor_si256(c2[8513],_mm256_xor_si256(c2[2972],_mm256_xor_si256(c2[3280],_mm256_xor_si256(c2[3584],_mm256_xor_si256(c2[6064],_mm256_xor_si256(c2[4524],_mm256_xor_si256(c2[5758],_mm256_xor_si256(c2[3616],_mm256_xor_si256(c2[8545],_mm256_xor_si256(c2[1461],_mm256_xor_si256(c2[1769],_mm256_xor_si256(c2[2395],_mm256_xor_si256(c2[3627],_mm256_xor_si256(c2[4554],_mm256_xor_si256(c2[4862],_mm256_xor_si256(c2[5802],_mm256_xor_si256(c2[8265],_mm256_xor_si256(c2[2413],_mm256_xor_si256(c2[2721],_mm256_xor_si256(c2[6721],_mm256_xor_si256(c2[3655],_mm256_xor_si256(c2[1501],_mm256_xor_si256(c2[1500],_mm256_xor_si256(c2[4289],_mm256_xor_si256(c2[9832],_mm256_xor_si256(c2[899],_mm256_xor_si256(c2[1207],_mm256_xor_si256(c2[7074],_mm256_xor_si256(c2[295],_mm256_xor_si256(c2[910],c2[1218]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 30
d2[210]=_mm256_xor_si256(c2[8319],_mm256_xor_si256(c2[2773],_mm256_xor_si256(c2[3083],_mm256_xor_si256(c2[3391],_mm256_xor_si256(c2[1235],_mm256_xor_si256(c2[1543],_mm256_xor_si256(c2[617],_mm256_xor_si256(c2[3714],_mm256_xor_si256(c2[1865],_mm256_xor_si256(c2[2173],_mm256_xor_si256(c2[4022],_mm256_xor_si256(c2[4330],_mm256_xor_si256(c2[8042],_mm256_xor_si256(c2[2805],_mm256_xor_si256(c2[8040],_mm256_xor_si256(c2[8348],_mm256_xor_si256(c2[7132],_mm256_xor_si256(c2[5895],_mm256_xor_si256(c2[44],_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[3141],_mm256_xor_si256(c2[3446],_mm256_xor_si256(c2[3754],_mm256_xor_si256(c2[60],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[1924],_mm256_xor_si256(c2[5922],_mm256_xor_si256(c2[4692],_mm256_xor_si256(c2[5000],_mm256_xor_si256(c2[1936],_mm256_xor_si256(c2[6554],_mm256_xor_si256(c2[6862],_mm256_xor_si256(c2[2553],_mm256_xor_si256(c2[2861],_mm256_xor_si256(c2[7799],_mm256_xor_si256(c2[8112],_mm256_xor_si256(c2[8420],_mm256_xor_si256(c2[2871],_mm256_xor_si256(c2[3179],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[6273],_mm256_xor_si256(c2[6581],_mm256_xor_si256(c2[3504],_mm256_xor_si256(c2[3812],_mm256_xor_si256(c2[8753],_mm256_xor_si256(c2[5984],_mm256_xor_si256(c2[3824],_mm256_xor_si256(c2[4132],_mm256_xor_si256(c2[2915],_mm256_xor_si256(c2[454],_mm256_xor_si256(c2[762],_mm256_xor_si256(c2[9076],_mm256_xor_si256(c2[9384],_mm256_xor_si256(c2[760],_mm256_xor_si256(c2[6317],_mm256_xor_si256(c2[3237],_mm256_xor_si256(c2[6931],_mm256_xor_si256(c2[7239],_mm256_xor_si256(c2[5408],_mm256_xor_si256(c2[7874],_mm256_xor_si256(c2[5099],_mm256_xor_si256(c2[5407],_mm256_xor_si256(c2[6037],_mm256_xor_si256(c2[2652],_mm256_xor_si256(c2[2960],_mm256_xor_si256(c2[4495],_mm256_xor_si256(c2[4803],_mm256_xor_si256(c2[5732],_mm256_xor_si256(c2[3590],_mm256_xor_si256(c2[5435],_mm256_xor_si256(c2[5743],_mm256_xor_si256(c2[202],_mm256_xor_si256(c2[510],_mm256_xor_si256(c2[3294],_mm256_xor_si256(c2[1754],_mm256_xor_si256(c2[2680],_mm256_xor_si256(c2[2988],_mm256_xor_si256(c2[846],_mm256_xor_si256(c2[5768],_mm256_xor_si256(c2[8546],_mm256_xor_si256(c2[8854],_mm256_xor_si256(c2[9480],_mm256_xor_si256(c2[549],_mm256_xor_si256(c2[857],_mm256_xor_si256(c2[1784],_mm256_xor_si256(c2[2092],_mm256_xor_si256(c2[3025],_mm256_xor_si256(c2[5180],_mm256_xor_si256(c2[5488],_mm256_xor_si256(c2[9498],_mm256_xor_si256(c2[9806],_mm256_xor_si256(c2[885],_mm256_xor_si256(c2[8586],_mm256_xor_si256(c2[8277],_mm256_xor_si256(c2[8585],_mm256_xor_si256(c2[1512],_mm256_xor_si256(c2[6754],_mm256_xor_si256(c2[7062],_mm256_xor_si256(c2[7984],_mm256_xor_si256(c2[8292],_mm256_xor_si256(c2[4304],_mm256_xor_si256(c2[7380],_mm256_xor_si256(c2[7995],c2[8303])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 31
d2[217]=_mm256_xor_si256(c2[4933],_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[9242],_mm256_xor_si256(c2[4313],_mm256_xor_si256(c2[5],_mm256_xor_si256(c2[4931],_mm256_xor_si256(c2[8012],_mm256_xor_si256(c2[2775],_mm256_xor_si256(c2[3083],_mm256_xor_si256(c2[328],_mm256_xor_si256(c2[5254],_mm256_xor_si256(c2[8642],_mm256_xor_si256(c2[3713],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[5562],_mm256_xor_si256(c2[5870],_mm256_xor_si256(c2[4639],_mm256_xor_si256(c2[4649],_mm256_xor_si256(c2[9582],_mm256_xor_si256(c2[9274],_mm256_xor_si256(c2[4345],_mm256_xor_si256(c2[4962],_mm256_xor_si256(c2[33],_mm256_xor_si256(c2[3739],_mm256_xor_si256(c2[8672],_mm256_xor_si256(c2[2509],_mm256_xor_si256(c2[7435],_mm256_xor_si256(c2[6821],_mm256_xor_si256(c2[1584],_mm256_xor_si256(c2[1892],_mm256_xor_si256(c2[9610],_mm256_xor_si256(c2[4681],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[5294],_mm256_xor_si256(c2[6837],_mm256_xor_si256(c2[1600],_mm256_xor_si256(c2[1908],_mm256_xor_si256(c2[8386],_mm256_xor_si256(c2[3464],_mm256_xor_si256(c2[2536],_mm256_xor_si256(c2[7462],_mm256_xor_si256(c2[1614],_mm256_xor_si256(c2[6540],_mm256_xor_si256(c2[8405],_mm256_xor_si256(c2[3476],_mm256_xor_si256(c2[3476],_mm256_xor_si256(c2[8402],_mm256_xor_si256(c2[9330],_mm256_xor_si256(c2[4093],_mm256_xor_si256(c2[4401],_mm256_xor_si256(c2[4413],_mm256_xor_si256(c2[9339],_mm256_xor_si256(c2[5027],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[9648],_mm256_xor_si256(c2[4411],_mm256_xor_si256(c2[4719],_mm256_xor_si256(c2[5335],_mm256_xor_si256(c2[6890],_mm256_xor_si256(c2[1961],_mm256_xor_si256(c2[3195],_mm256_xor_si256(c2[8121],_mm256_xor_si256(c2[426],_mm256_xor_si256(c2[5044],_mm256_xor_si256(c2[5352],_mm256_xor_si256(c2[5367],_mm256_xor_si256(c2[438],_mm256_xor_si256(c2[2591],_mm256_xor_si256(c2[7524],_mm256_xor_si256(c2[746],_mm256_xor_si256(c2[5672],_mm256_xor_si256(c2[9384],_mm256_xor_si256(c2[4455],_mm256_xor_si256(c2[7224],_mm256_xor_si256(c2[2302],_mm256_xor_si256(c2[5998],_mm256_xor_si256(c2[761],_mm256_xor_si256(c2[1069],_mm256_xor_si256(c2[2931],_mm256_xor_si256(c2[7857],_mm256_xor_si256(c2[9706],_mm256_xor_si256(c2[4777],_mm256_xor_si256(c2[3853],_mm256_xor_si256(c2[8471],_mm256_xor_si256(c2[8779],_mm256_xor_si256(c2[2022],_mm256_xor_si256(c2[6948],_mm256_xor_si256(c2[4481],_mm256_xor_si256(c2[9414],_mm256_xor_si256(c2[2021],_mm256_xor_si256(c2[6639],_mm256_xor_si256(c2[6947],_mm256_xor_si256(c2[2651],_mm256_xor_si256(c2[7577],_mm256_xor_si256(c2[9422],_mm256_xor_si256(c2[4500],_mm256_xor_si256(c2[1417],_mm256_xor_si256(c2[6035],_mm256_xor_si256(c2[6343],_mm256_xor_si256(c2[197],_mm256_xor_si256(c2[5130],_mm256_xor_si256(c2[2357],_mm256_xor_si256(c2[7283],_mm256_xor_si256(c2[6972],_mm256_xor_si256(c2[1742],_mm256_xor_si256(c2[2050],_mm256_xor_si256(c2[9763],_mm256_xor_si256(c2[4834],_mm256_xor_si256(c2[8223],_mm256_xor_si256(c2[3294],_mm256_xor_si256(c2[9450],_mm256_xor_si256(c2[4528],_mm256_xor_si256(c2[7308],_mm256_xor_si256(c2[2386],_mm256_xor_si256(c2[2382],_mm256_xor_si256(c2[7308],_mm256_xor_si256(c2[5461],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[532],_mm256_xor_si256(c2[6094],_mm256_xor_si256(c2[1165],_mm256_xor_si256(c2[7326],_mm256_xor_si256(c2[2397],_mm256_xor_si256(c2[8554],_mm256_xor_si256(c2[3324],_mm256_xor_si256(c2[3632],_mm256_xor_si256(c2[9494],_mm256_xor_si256(c2[4565],_mm256_xor_si256(c2[2102],_mm256_xor_si256(c2[7028],_mm256_xor_si256(c2[6413],_mm256_xor_si256(c2[1176],_mm256_xor_si256(c2[1484],_mm256_xor_si256(c2[7354],_mm256_xor_si256(c2[2425],_mm256_xor_si256(c2[5200],_mm256_xor_si256(c2[271],_mm256_xor_si256(c2[5199],_mm256_xor_si256(c2[270],_mm256_xor_si256(c2[7981],_mm256_xor_si256(c2[3052],_mm256_xor_si256(c2[3669],_mm256_xor_si256(c2[8602],_mm256_xor_si256(c2[4906],_mm256_xor_si256(c2[9524],_mm256_xor_si256(c2[9832],_mm256_xor_si256(c2[911],_mm256_xor_si256(c2[5844],_mm256_xor_si256(c2[3994],_mm256_xor_si256(c2[8920],_mm256_xor_si256(c2[4917],_mm256_xor_si256(c2[9535],c2[9843]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 32
d2[224]=_mm256_xor_si256(c2[9240],_mm256_xor_si256(c2[3701],_mm256_xor_si256(c2[4004],_mm256_xor_si256(c2[4312],_mm256_xor_si256(c2[2156],_mm256_xor_si256(c2[2464],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[4635],_mm256_xor_si256(c2[2786],_mm256_xor_si256(c2[3094],_mm256_xor_si256(c2[4943],_mm256_xor_si256(c2[5251],_mm256_xor_si256(c2[8963],_mm256_xor_si256(c2[3726],_mm256_xor_si256(c2[8961],_mm256_xor_si256(c2[9269],_mm256_xor_si256(c2[8053],_mm256_xor_si256(c2[6823],_mm256_xor_si256(c2[972],_mm256_xor_si256(c2[1280],_mm256_xor_si256(c2[4062],_mm256_xor_si256(c2[4374],_mm256_xor_si256(c2[4682],_mm256_xor_si256(c2[981],_mm256_xor_si256(c2[1289],_mm256_xor_si256(c2[2845],_mm256_xor_si256(c2[6850],_mm256_xor_si256(c2[5620],_mm256_xor_si256(c2[5928],_mm256_xor_si256(c2[2857],_mm256_xor_si256(c2[7482],_mm256_xor_si256(c2[7790],_mm256_xor_si256(c2[3474],_mm256_xor_si256(c2[3782],_mm256_xor_si256(c2[8727],_mm256_xor_si256(c2[9033],_mm256_xor_si256(c2[9341],_mm256_xor_si256(c2[3799],_mm256_xor_si256(c2[4107],_mm256_xor_si256(c2[1349],_mm256_xor_si256(c2[7201],_mm256_xor_si256(c2[7509],_mm256_xor_si256(c2[4425],_mm256_xor_si256(c2[4733],_mm256_xor_si256(c2[9674],_mm256_xor_si256(c2[6905],_mm256_xor_si256(c2[4752],_mm256_xor_si256(c2[5060],_mm256_xor_si256(c2[3836],_mm256_xor_si256(c2[1375],_mm256_xor_si256(c2[1683],_mm256_xor_si256(c2[142],_mm256_xor_si256(c2[450],_mm256_xor_si256(c2[7238],_mm256_xor_si256(c2[4158],_mm256_xor_si256(c2[7859],_mm256_xor_si256(c2[8167],_mm256_xor_si256(c2[6329],_mm256_xor_si256(c2[8795],_mm256_xor_si256(c2[6020],_mm256_xor_si256(c2[6328],_mm256_xor_si256(c2[5410],_mm256_xor_si256(c2[6958],_mm256_xor_si256(c2[3573],_mm256_xor_si256(c2[3881],_mm256_xor_si256(c2[5423],_mm256_xor_si256(c2[5731],_mm256_xor_si256(c2[4511],_mm256_xor_si256(c2[6356],_mm256_xor_si256(c2[6664],_mm256_xor_si256(c2[1123],_mm256_xor_si256(c2[1431],_mm256_xor_si256(c2[8205],_mm256_xor_si256(c2[4215],_mm256_xor_si256(c2[2675],_mm256_xor_si256(c2[3601],_mm256_xor_si256(c2[3909],_mm256_xor_si256(c2[1767],_mm256_xor_si256(c2[6696],_mm256_xor_si256(c2[9467],_mm256_xor_si256(c2[9775],_mm256_xor_si256(c2[546],_mm256_xor_si256(c2[1470],_mm256_xor_si256(c2[1778],_mm256_xor_si256(c2[2705],_mm256_xor_si256(c2[3013],_mm256_xor_si256(c2[3953],_mm256_xor_si256(c2[6108],_mm256_xor_si256(c2[6416],_mm256_xor_si256(c2[564],_mm256_xor_si256(c2[872],_mm256_xor_si256(c2[1806],_mm256_xor_si256(c2[9507],_mm256_xor_si256(c2[9198],_mm256_xor_si256(c2[9506],_mm256_xor_si256(c2[2440],_mm256_xor_si256(c2[7675],_mm256_xor_si256(c2[7983],_mm256_xor_si256(c2[8905],_mm256_xor_si256(c2[9213],_mm256_xor_si256(c2[5225],_mm256_xor_si256(c2[8308],_mm256_xor_si256(c2[8923],c2[9231])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 33
d2[231]=_mm256_xor_si256(c2[5561],_mm256_xor_si256(c2[5265],_mm256_xor_si256(c2[467],c2[3070])));
//row: 34
d2[238]=_mm256_xor_si256(c2[5546],_mm256_xor_si256(c2[8111],_mm256_xor_si256(c2[1444],c2[7018])));
//row: 35
d2[245]=_mm256_xor_si256(c2[8013],_mm256_xor_si256(c2[2467],_mm256_xor_si256(c2[3085],_mm256_xor_si256(c2[1237],_mm256_xor_si256(c2[3408],_mm256_xor_si256(c2[1867],_mm256_xor_si256(c2[4024],_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[7729],_mm256_xor_si256(c2[2492],_mm256_xor_si256(c2[8042],_mm256_xor_si256(c2[6819],_mm256_xor_si256(c2[5589],_mm256_xor_si256(c2[46],_mm256_xor_si256(c2[2828],_mm256_xor_si256(c2[3448],_mm256_xor_si256(c2[62],_mm256_xor_si256(c2[1611],_mm256_xor_si256(c2[5616],_mm256_xor_si256(c2[4694],_mm256_xor_si256(c2[1630],_mm256_xor_si256(c2[6556],_mm256_xor_si256(c2[2548],_mm256_xor_si256(c2[4093],_mm256_xor_si256(c2[7493],_mm256_xor_si256(c2[8107],_mm256_xor_si256(c2[2873],_mm256_xor_si256(c2[115],_mm256_xor_si256(c2[6275],_mm256_xor_si256(c2[3506],_mm256_xor_si256(c2[8447],_mm256_xor_si256(c2[5671],_mm256_xor_si256(c2[3826],_mm256_xor_si256(c2[2609],_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[9078],_mm256_xor_si256(c2[6011],_mm256_xor_si256(c2[2931],_mm256_xor_si256(c2[6933],_mm256_xor_si256(c2[5102],_mm256_xor_si256(c2[7561],_mm256_xor_si256(c2[5101],_mm256_xor_si256(c2[8176],_mm256_xor_si256(c2[5731],_mm256_xor_si256(c2[2647],_mm256_xor_si256(c2[4497],_mm256_xor_si256(c2[3277],_mm256_xor_si256(c2[5437],_mm256_xor_si256(c2[197],_mm256_xor_si256(c2[2988],_mm256_xor_si256(c2[1448],_mm256_xor_si256(c2[2675],_mm256_xor_si256(c2[533],_mm256_xor_si256(c2[5462],_mm256_xor_si256(c2[8541],_mm256_xor_si256(c2[9174],_mm256_xor_si256(c2[551],_mm256_xor_si256(c2[1779],_mm256_xor_si256(c2[2719],_mm256_xor_si256(c2[5182],_mm256_xor_si256(c2[9493],_mm256_xor_si256(c2[579],_mm256_xor_si256(c2[8280],_mm256_xor_si256(c2[8279],_mm256_xor_si256(c2[1206],_mm256_xor_si256(c2[6749],_mm256_xor_si256(c2[7986],_mm256_xor_si256(c2[3991],_mm256_xor_si256(c2[7074],c2[7997])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 36
d2[252]=_mm256_xor_si256(c2[9246],_mm256_xor_si256(c2[9132],_mm256_xor_si256(c2[210],c2[2100])));
//row: 37
d2[259]=_mm256_xor_si256(c2[2776],_mm256_xor_si256(c2[3084],_mm256_xor_si256(c2[7393],_mm256_xor_si256(c2[8011],_mm256_xor_si256(c2[6163],_mm256_xor_si256(c2[8026],_mm256_xor_si256(c2[8334],_mm256_xor_si256(c2[6793],_mm256_xor_si256(c2[8950],_mm256_xor_si256(c2[5252],_mm256_xor_si256(c2[2492],_mm256_xor_si256(c2[2800],_mm256_xor_si256(c2[7425],_mm256_xor_si256(c2[3113],_mm256_xor_si256(c2[1582],_mm256_xor_si256(c2[1890],_mm256_xor_si256(c2[660],_mm256_xor_si256(c2[4972],_mm256_xor_si256(c2[7761],_mm256_xor_si256(c2[8374],_mm256_xor_si256(c2[4988],_mm256_xor_si256(c2[6236],_mm256_xor_si256(c2[6544],_mm256_xor_si256(c2[687],_mm256_xor_si256(c2[9620],_mm256_xor_si256(c2[6248],_mm256_xor_si256(c2[6556],_mm256_xor_si256(c2[1627],_mm256_xor_si256(c2[7481],_mm256_xor_si256(c2[2564],_mm256_xor_si256(c2[3178],_mm256_xor_si256(c2[7799],_mm256_xor_si256(c2[5041],_mm256_xor_si256(c2[1346],_mm256_xor_si256(c2[8432],_mm256_xor_si256(c2[3210],_mm256_xor_si256(c2[3518],_mm256_xor_si256(c2[742],_mm256_xor_si256(c2[8752],_mm256_xor_si256(c2[7227],_mm256_xor_si256(c2[7535],_mm256_xor_si256(c2[5382],_mm256_xor_si256(c2[4149],_mm256_xor_si256(c2[774],_mm256_xor_si256(c2[1082],_mm256_xor_si256(c2[7857],_mm256_xor_si256(c2[2004],_mm256_xor_si256(c2[9720],_mm256_xor_si256(c2[173],_mm256_xor_si256(c2[2632],_mm256_xor_si256(c2[172],_mm256_xor_si256(c2[494],_mm256_xor_si256(c2[802],_mm256_xor_si256(c2[7580],_mm256_xor_si256(c2[9423],_mm256_xor_si256(c2[1112],_mm256_xor_si256(c2[8210],_mm256_xor_si256(c2[508],_mm256_xor_si256(c2[5130],_mm256_xor_si256(c2[7606],_mm256_xor_si256(c2[7914],_mm256_xor_si256(c2[6374],_mm256_xor_si256(c2[7608],_mm256_xor_si256(c2[5158],_mm256_xor_si256(c2[5466],_mm256_xor_si256(c2[533],_mm256_xor_si256(c2[3612],_mm256_xor_si256(c2[4245],_mm256_xor_si256(c2[5477],_mm256_xor_si256(c2[6712],_mm256_xor_si256(c2[7337],_mm256_xor_si256(c2[7645],_mm256_xor_si256(c2[253],_mm256_xor_si256(c2[4564],_mm256_xor_si256(c2[5197],_mm256_xor_si256(c2[5505],_mm256_xor_si256(c2[3351],_mm256_xor_si256(c2[3350],_mm256_xor_si256(c2[5824],_mm256_xor_si256(c2[6132],_mm256_xor_si256(c2[1820],_mm256_xor_si256(c2[3057],_mm256_xor_si256(c2[8616],_mm256_xor_si256(c2[8924],_mm256_xor_si256(c2[2145],c2[3068])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 38
d2[266]=_mm256_xor_si256(c2[8319],_mm256_xor_si256(c2[8136],_mm256_xor_si256(c2[2914],c2[3248])));
//row: 39
d2[273]=_mm256_xor_si256(c2[3710],_mm256_xor_si256(c2[4048],_mm256_xor_si256(c2[5335],c2[5813])));
//row: 40
d2[280]=_mm256_xor_si256(c2[926],_mm256_xor_si256(c2[4117],c2[241]));
//row: 41
d2[287]=_mm256_xor_si256(c2[7098],_mm256_xor_si256(c2[7132],_mm256_xor_si256(c2[8751],c2[2413])));
//row: 42
d2[294]=_mm256_xor_si256(c2[4314],_mm256_xor_si256(c2[8630],_mm256_xor_si256(c2[8933],_mm256_xor_si256(c2[9241],_mm256_xor_si256(c2[7085],_mm256_xor_si256(c2[7393],_mm256_xor_si256(c2[5547],_mm256_xor_si256(c2[9564],_mm256_xor_si256(c2[7715],_mm256_xor_si256(c2[8023],_mm256_xor_si256(c2[17],_mm256_xor_si256(c2[325],_mm256_xor_si256(c2[4037],_mm256_xor_si256(c2[8655],_mm256_xor_si256(c2[4035],_mm256_xor_si256(c2[4343],_mm256_xor_si256(c2[3127],_mm256_xor_si256(c2[1890],_mm256_xor_si256(c2[5894],_mm256_xor_si256(c2[6202],_mm256_xor_si256(c2[8991],_mm256_xor_si256(c2[9296],_mm256_xor_si256(c2[9604],_mm256_xor_si256(c2[5910],_mm256_xor_si256(c2[6218],_mm256_xor_si256(c2[8374],_mm256_xor_si256(c2[7774],_mm256_xor_si256(c2[1924],_mm256_xor_si256(c2[687],_mm256_xor_si256(c2[995],_mm256_xor_si256(c2[7786],_mm256_xor_si256(c2[2549],_mm256_xor_si256(c2[2857],_mm256_xor_si256(c2[8403],_mm256_xor_si256(c2[8711],_mm256_xor_si256(c2[3794],_mm256_xor_si256(c2[4107],_mm256_xor_si256(c2[4415],_mm256_xor_si256(c2[8728],_mm256_xor_si256(c2[9036],_mm256_xor_si256(c2[6278],_mm256_xor_si256(c2[2268],_mm256_xor_si256(c2[2576],_mm256_xor_si256(c2[9354],_mm256_xor_si256(c2[9662],_mm256_xor_si256(c2[4748],_mm256_xor_si256(c2[1979],_mm256_xor_si256(c2[9674],_mm256_xor_si256(c2[127],_mm256_xor_si256(c2[8765],_mm256_xor_si256(c2[6304],_mm256_xor_si256(c2[6612],_mm256_xor_si256(c2[5071],_mm256_xor_si256(c2[5379],_mm256_xor_si256(c2[2312],_mm256_xor_si256(c2[9087],_mm256_xor_si256(c2[2926],_mm256_xor_si256(c2[3234],_mm256_xor_si256(c2[1403],_mm256_xor_si256(c2[3869],_mm256_xor_si256(c2[1094],_mm256_xor_si256(c2[1402],_mm256_xor_si256(c2[2032],_mm256_xor_si256(c2[8502],_mm256_xor_si256(c2[8810],_mm256_xor_si256(c2[490],_mm256_xor_si256(c2[798],_mm256_xor_si256(c2[9440],_mm256_xor_si256(c2[1430],_mm256_xor_si256(c2[1738],_mm256_xor_si256(c2[6052],_mm256_xor_si256(c2[6360],_mm256_xor_si256(c2[9144],_mm256_xor_si256(c2[7604],_mm256_xor_si256(c2[8530],_mm256_xor_si256(c2[8838],_mm256_xor_si256(c2[6696],_mm256_xor_si256(c2[1770],_mm256_xor_si256(c2[4541],_mm256_xor_si256(c2[4849],_mm256_xor_si256(c2[5475],_mm256_xor_si256(c2[6399],_mm256_xor_si256(c2[6707],_mm256_xor_si256(c2[7634],_mm256_xor_si256(c2[7942],_mm256_xor_si256(c2[8882],_mm256_xor_si256(c2[1182],_mm256_xor_si256(c2[1490],_mm256_xor_si256(c2[5493],_mm256_xor_si256(c2[5801],_mm256_xor_si256(c2[6735],_mm256_xor_si256(c2[4581],_mm256_xor_si256(c2[4272],_mm256_xor_si256(c2[4580],_mm256_xor_si256(c2[7369],_mm256_xor_si256(c2[2749],_mm256_xor_si256(c2[3057],_mm256_xor_si256(c2[3979],_mm256_xor_si256(c2[4287],_mm256_xor_si256(c2[299],_mm256_xor_si256(c2[3375],_mm256_xor_si256(c2[3990],c2[4298]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 43
d2[301]=_mm256_xor_si256(c2[313],_mm256_xor_si256(c2[4622],_mm256_xor_si256(c2[5240],_mm256_xor_si256(c2[3084],_mm256_xor_si256(c2[3392],_mm256_xor_si256(c2[5563],_mm256_xor_si256(c2[4022],_mm256_xor_si256(c2[5871],_mm256_xor_si256(c2[6179],_mm256_xor_si256(c2[4332],_mm256_xor_si256(c2[29],_mm256_xor_si256(c2[4654],_mm256_xor_si256(c2[342],_mm256_xor_si256(c2[8974],_mm256_xor_si256(c2[7744],_mm256_xor_si256(c2[1893],_mm256_xor_si256(c2[2201],_mm256_xor_si256(c2[4990],_mm256_xor_si256(c2[5603],_mm256_xor_si256(c2[1909],_mm256_xor_si256(c2[2217],_mm256_xor_si256(c2[3766],_mm256_xor_si256(c2[7771],_mm256_xor_si256(c2[6849],_mm256_xor_si256(c2[3785],_mm256_xor_si256(c2[8711],_mm256_xor_si256(c2[4402],_mm256_xor_si256(c2[4710],_mm256_xor_si256(c2[9648],_mm256_xor_si256(c2[407],_mm256_xor_si256(c2[4720],_mm256_xor_si256(c2[5028],_mm256_xor_si256(c2[2270],_mm256_xor_si256(c2[8430],_mm256_xor_si256(c2[5353],_mm256_xor_si256(c2[5661],_mm256_xor_si256(c2[747],_mm256_xor_si256(c2[7826],_mm256_xor_si256(c2[5981],_mm256_xor_si256(c2[4764],_mm256_xor_si256(c2[2604],_mm256_xor_si256(c2[1070],_mm256_xor_si256(c2[1378],_mm256_xor_si256(c2[8166],_mm256_xor_si256(c2[5086],_mm256_xor_si256(c2[8780],_mm256_xor_si256(c2[9088],_mm256_xor_si256(c2[7257],_mm256_xor_si256(c2[9716],_mm256_xor_si256(c2[6948],_mm256_xor_si256(c2[7256],_mm256_xor_si256(c2[7886],_mm256_xor_si256(c2[4802],_mm256_xor_si256(c2[6344],_mm256_xor_si256(c2[6652],_mm256_xor_si256(c2[5432],_mm256_xor_si256(c2[7592],_mm256_xor_si256(c2[2044],_mm256_xor_si256(c2[2352],_mm256_xor_si256(c2[5143],_mm256_xor_si256(c2[3603],_mm256_xor_si256(c2[4830],_mm256_xor_si256(c2[2688],_mm256_xor_si256(c2[7617],_mm256_xor_si256(c2[533],_mm256_xor_si256(c2[841],_mm256_xor_si256(c2[7000],_mm256_xor_si256(c2[1474],_mm256_xor_si256(c2[2706],_mm256_xor_si256(c2[3626],_mm256_xor_si256(c2[3934],_mm256_xor_si256(c2[4874],_mm256_xor_si256(c2[7337],_mm256_xor_si256(c2[1485],_mm256_xor_si256(c2[1793],_mm256_xor_si256(c2[2104],_mm256_xor_si256(c2[2734],_mm256_xor_si256(c2[580],_mm256_xor_si256(c2[579],_mm256_xor_si256(c2[3361],_mm256_xor_si256(c2[8904],_mm256_xor_si256(c2[9833],_mm256_xor_si256(c2[286],_mm256_xor_si256(c2[6146],_mm256_xor_si256(c2[9229],_mm256_xor_si256(c2[9844],c2[297]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 44
d2[308]=_mm256_xor_si256(c2[3388],_mm256_xor_si256(c2[7704],_mm256_xor_si256(c2[8322],_mm256_xor_si256(c2[6474],_mm256_xor_si256(c2[6162],_mm256_xor_si256(c2[8638],_mm256_xor_si256(c2[7104],_mm256_xor_si256(c2[9254],_mm256_xor_si256(c2[3111],_mm256_xor_si256(c2[7729],_mm256_xor_si256(c2[3417],_mm256_xor_si256(c2[2201],_mm256_xor_si256(c2[971],_mm256_xor_si256(c2[5283],_mm256_xor_si256(c2[8065],_mm256_xor_si256(c2[8685],_mm256_xor_si256(c2[5292],_mm256_xor_si256(c2[6848],_mm256_xor_si256(c2[998],_mm256_xor_si256(c2[76],_mm256_xor_si256(c2[6860],_mm256_xor_si256(c2[1938],_mm256_xor_si256(c2[7785],_mm256_xor_si256(c2[2875],_mm256_xor_si256(c2[3489],_mm256_xor_si256(c2[8110],_mm256_xor_si256(c2[1330],_mm256_xor_si256(c2[5352],_mm256_xor_si256(c2[1657],_mm256_xor_si256(c2[8736],_mm256_xor_si256(c2[3822],_mm256_xor_si256(c2[1053],_mm256_xor_si256(c2[9063],_mm256_xor_si256(c2[2898],_mm256_xor_si256(c2[7846],_mm256_xor_si256(c2[5686],_mm256_xor_si256(c2[4453],_mm256_xor_si256(c2[1386],_mm256_xor_si256(c2[8168],_mm256_xor_si256(c2[2315],_mm256_xor_si256(c2[477],_mm256_xor_si256(c2[2943],_mm256_xor_si256(c2[476],_mm256_xor_si256(c2[1106],_mm256_xor_si256(c2[7884],_mm256_xor_si256(c2[9734],_mm256_xor_si256(c2[8514],_mm256_xor_si256(c2[812],_mm256_xor_si256(c2[5434],_mm256_xor_si256(c2[8218],_mm256_xor_si256(c2[6678],_mm256_xor_si256(c2[7912],_mm256_xor_si256(c2[5770],_mm256_xor_si256(c2[844],_mm256_xor_si256(c2[3923],_mm256_xor_si256(c2[4556],_mm256_xor_si256(c2[5788],_mm256_xor_si256(c2[7016],_mm256_xor_si256(c2[7956],_mm256_xor_si256(c2[564],_mm256_xor_si256(c2[4875],_mm256_xor_si256(c2[5816],_mm256_xor_si256(c2[3655],_mm256_xor_si256(c2[3654],_mm256_xor_si256(c2[6443],_mm256_xor_si256(c2[2131],_mm256_xor_si256(c2[3361],_mm256_xor_si256(c2[9228],_mm256_xor_si256(c2[2456],c2[3379])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 45
d2[315]=_mm256_xor_si256(c2[7411],_mm256_xor_si256(c2[7787],c2[9072]));
}
}
#include "PHY/sse_intrin.h"
// generated code for Zc=240, byte encoding
static inline void ldpc240_byte(uint8_t *c,uint8_t *d) {
__m128i *csimd=(__m128i *)c,*dsimd=(__m128i *)d;
__m128i *c2,*d2;
int i2;
for (i2=0; i2<15; i2++) {
c2=&csimd[i2];
d2=&dsimd[i2];
//row: 0
d2[0]=_mm_xor_si128(c2[4628],_mm_xor_si128(c2[6],_mm_xor_si128(c2[8591],_mm_xor_si128(c2[8],_mm_xor_si128(c2[2024],_mm_xor_si128(c2[2670],_mm_xor_si128(c2[4651],_mm_xor_si128(c2[9307],_mm_xor_si128(c2[7994],_mm_xor_si128(c2[734],_mm_xor_si128(c2[4058],_mm_xor_si128(c2[5378],_mm_xor_si128(c2[1420],_mm_xor_si128(c2[8713],_mm_xor_si128(c2[4749],_mm_xor_si128(c2[8053],_mm_xor_si128(c2[2795],_mm_xor_si128(c2[158],_mm_xor_si128(c2[8084],_mm_xor_si128(c2[2165],_mm_xor_si128(c2[3487],_mm_xor_si128(c2[7442],_mm_xor_si128(c2[8135],_mm_xor_si128(c2[2201],_mm_xor_si128(c2[6821],_mm_xor_si128(c2[8170],_mm_xor_si128(c2[8165],_mm_xor_si128(c2[246],_mm_xor_si128(c2[3573],_mm_xor_si128(c2[5553],_mm_xor_si128(c2[5551],_mm_xor_si128(c2[974],_mm_xor_si128(c2[2944],_mm_xor_si128(c2[960],_mm_xor_si128(c2[8922],_mm_xor_si128(c2[7590],_mm_xor_si128(c2[5623],_mm_xor_si128(c2[368],_mm_xor_si128(c2[8951],_mm_xor_si128(c2[4321],_mm_xor_si128(c2[7654],_mm_xor_si128(c2[4350],_mm_xor_si128(c2[5671],_mm_xor_si128(c2[10325],_mm_xor_si128(c2[3726],_mm_xor_si128(c2[5050],_mm_xor_si128(c2[5078],_mm_xor_si128(c2[3755],_mm_xor_si128(c2[1112],_mm_xor_si128(c2[6433],_mm_xor_si128(c2[6429],_mm_xor_si128(c2[5772],_mm_xor_si128(c2[5135],_mm_xor_si128(c2[516],_mm_xor_si128(c2[512],_mm_xor_si128(c2[8473],_mm_xor_si128(c2[9127],_mm_xor_si128(c2[7814],_mm_xor_si128(c2[7175],_mm_xor_si128(c2[2560],_mm_xor_si128(c2[2554],_mm_xor_si128(c2[6546],_mm_xor_si128(c2[4574],_mm_xor_si128(c2[8530],_mm_xor_si128(c2[6578],_mm_xor_si128(c2[5923],c2[7903]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 1
d2[15]=_mm_xor_si128(c2[4628],_mm_xor_si128(c2[5288],_mm_xor_si128(c2[666],_mm_xor_si128(c2[9251],_mm_xor_si128(c2[668],_mm_xor_si128(c2[2024],_mm_xor_si128(c2[2684],_mm_xor_si128(c2[3330],_mm_xor_si128(c2[5311],_mm_xor_si128(c2[9307],_mm_xor_si128(c2[9967],_mm_xor_si128(c2[8654],_mm_xor_si128(c2[1394],_mm_xor_si128(c2[4058],_mm_xor_si128(c2[4718],_mm_xor_si128(c2[6038],_mm_xor_si128(c2[2080],_mm_xor_si128(c2[9373],_mm_xor_si128(c2[5409],_mm_xor_si128(c2[8713],_mm_xor_si128(c2[2795],_mm_xor_si128(c2[3455],_mm_xor_si128(c2[818],_mm_xor_si128(c2[8744],_mm_xor_si128(c2[2165],_mm_xor_si128(c2[2825],_mm_xor_si128(c2[4147],_mm_xor_si128(c2[8102],_mm_xor_si128(c2[8795],_mm_xor_si128(c2[2861],_mm_xor_si128(c2[7481],_mm_xor_si128(c2[8830],_mm_xor_si128(c2[8825],_mm_xor_si128(c2[906],_mm_xor_si128(c2[3573],_mm_xor_si128(c2[4233],_mm_xor_si128(c2[6213],_mm_xor_si128(c2[6211],_mm_xor_si128(c2[974],_mm_xor_si128(c2[1634],_mm_xor_si128(c2[3604],_mm_xor_si128(c2[1620],_mm_xor_si128(c2[8922],_mm_xor_si128(c2[9582],_mm_xor_si128(c2[8250],_mm_xor_si128(c2[6283],_mm_xor_si128(c2[368],_mm_xor_si128(c2[1028],_mm_xor_si128(c2[9611],_mm_xor_si128(c2[4981],_mm_xor_si128(c2[7654],_mm_xor_si128(c2[8314],_mm_xor_si128(c2[5010],_mm_xor_si128(c2[6331],_mm_xor_si128(c2[426],_mm_xor_si128(c2[4386],_mm_xor_si128(c2[5710],_mm_xor_si128(c2[5078],_mm_xor_si128(c2[5738],_mm_xor_si128(c2[4415],_mm_xor_si128(c2[1772],_mm_xor_si128(c2[6433],_mm_xor_si128(c2[7093],_mm_xor_si128(c2[7089],_mm_xor_si128(c2[6432],_mm_xor_si128(c2[5795],_mm_xor_si128(c2[1176],_mm_xor_si128(c2[1172],_mm_xor_si128(c2[8473],_mm_xor_si128(c2[9133],_mm_xor_si128(c2[9787],_mm_xor_si128(c2[8474],_mm_xor_si128(c2[7175],_mm_xor_si128(c2[7835],_mm_xor_si128(c2[3220],_mm_xor_si128(c2[3214],_mm_xor_si128(c2[6546],_mm_xor_si128(c2[7206],_mm_xor_si128(c2[5234],_mm_xor_si128(c2[9190],_mm_xor_si128(c2[6578],_mm_xor_si128(c2[7238],_mm_xor_si128(c2[6583],c2[8563])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 2
d2[30]=_mm_xor_si128(c2[5288],_mm_xor_si128(c2[666],_mm_xor_si128(c2[8591],_mm_xor_si128(c2[9251],_mm_xor_si128(c2[8],_mm_xor_si128(c2[668],_mm_xor_si128(c2[2684],_mm_xor_si128(c2[2670],_mm_xor_si128(c2[3330],_mm_xor_si128(c2[4651],_mm_xor_si128(c2[5311],_mm_xor_si128(c2[9967],_mm_xor_si128(c2[8654],_mm_xor_si128(c2[734],_mm_xor_si128(c2[1394],_mm_xor_si128(c2[4718],_mm_xor_si128(c2[6038],_mm_xor_si128(c2[1420],_mm_xor_si128(c2[2080],_mm_xor_si128(c2[9373],_mm_xor_si128(c2[4749],_mm_xor_si128(c2[5409],_mm_xor_si128(c2[8053],_mm_xor_si128(c2[8713],_mm_xor_si128(c2[3455],_mm_xor_si128(c2[818],_mm_xor_si128(c2[8084],_mm_xor_si128(c2[8744],_mm_xor_si128(c2[2825],_mm_xor_si128(c2[3487],_mm_xor_si128(c2[4147],_mm_xor_si128(c2[7442],_mm_xor_si128(c2[8102],_mm_xor_si128(c2[8795],_mm_xor_si128(c2[2201],_mm_xor_si128(c2[2861],_mm_xor_si128(c2[6821],_mm_xor_si128(c2[7481],_mm_xor_si128(c2[8830],_mm_xor_si128(c2[8165],_mm_xor_si128(c2[8825],_mm_xor_si128(c2[246],_mm_xor_si128(c2[906],_mm_xor_si128(c2[4233],_mm_xor_si128(c2[6213],_mm_xor_si128(c2[5551],_mm_xor_si128(c2[6211],_mm_xor_si128(c2[1634],_mm_xor_si128(c2[2944],_mm_xor_si128(c2[3604],_mm_xor_si128(c2[960],_mm_xor_si128(c2[1620],_mm_xor_si128(c2[9582],_mm_xor_si128(c2[8250],_mm_xor_si128(c2[5623],_mm_xor_si128(c2[6283],_mm_xor_si128(c2[1028],_mm_xor_si128(c2[9611],_mm_xor_si128(c2[4321],_mm_xor_si128(c2[4981],_mm_xor_si128(c2[8314],_mm_xor_si128(c2[4350],_mm_xor_si128(c2[5010],_mm_xor_si128(c2[5671],_mm_xor_si128(c2[6331],_mm_xor_si128(c2[426],_mm_xor_si128(c2[3726],_mm_xor_si128(c2[4386],_mm_xor_si128(c2[5050],_mm_xor_si128(c2[5710],_mm_xor_si128(c2[5738],_mm_xor_si128(c2[4415],_mm_xor_si128(c2[1112],_mm_xor_si128(c2[1772],_mm_xor_si128(c2[7093],_mm_xor_si128(c2[7089],_mm_xor_si128(c2[5772],_mm_xor_si128(c2[6432],_mm_xor_si128(c2[5795],_mm_xor_si128(c2[516],_mm_xor_si128(c2[1176],_mm_xor_si128(c2[512],_mm_xor_si128(c2[1172],_mm_xor_si128(c2[9133],_mm_xor_si128(c2[9127],_mm_xor_si128(c2[9787],_mm_xor_si128(c2[7814],_mm_xor_si128(c2[8474],_mm_xor_si128(c2[7835],_mm_xor_si128(c2[3220],_mm_xor_si128(c2[2554],_mm_xor_si128(c2[3214],_mm_xor_si128(c2[7206],_mm_xor_si128(c2[4574],_mm_xor_si128(c2[5234],_mm_xor_si128(c2[8530],_mm_xor_si128(c2[9190],_mm_xor_si128(c2[7238],_mm_xor_si128(c2[6583],_mm_xor_si128(c2[7903],c2[8563]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 3
d2[45]=_mm_xor_si128(c2[5288],_mm_xor_si128(c2[666],_mm_xor_si128(c2[9251],_mm_xor_si128(c2[8],_mm_xor_si128(c2[668],_mm_xor_si128(c2[2684],_mm_xor_si128(c2[3330],_mm_xor_si128(c2[4651],_mm_xor_si128(c2[5311],_mm_xor_si128(c2[9967],_mm_xor_si128(c2[8654],_mm_xor_si128(c2[1394],_mm_xor_si128(c2[4718],_mm_xor_si128(c2[6038],_mm_xor_si128(c2[1420],_mm_xor_si128(c2[2080],_mm_xor_si128(c2[9373],_mm_xor_si128(c2[5409],_mm_xor_si128(c2[8053],_mm_xor_si128(c2[8713],_mm_xor_si128(c2[3455],_mm_xor_si128(c2[818],_mm_xor_si128(c2[8744],_mm_xor_si128(c2[2825],_mm_xor_si128(c2[4147],_mm_xor_si128(c2[7442],_mm_xor_si128(c2[8102],_mm_xor_si128(c2[8795],_mm_xor_si128(c2[2861],_mm_xor_si128(c2[6821],_mm_xor_si128(c2[7481],_mm_xor_si128(c2[8830],_mm_xor_si128(c2[8825],_mm_xor_si128(c2[246],_mm_xor_si128(c2[906],_mm_xor_si128(c2[4233],_mm_xor_si128(c2[6213],_mm_xor_si128(c2[6211],_mm_xor_si128(c2[1634],_mm_xor_si128(c2[3604],_mm_xor_si128(c2[960],_mm_xor_si128(c2[1620],_mm_xor_si128(c2[9582],_mm_xor_si128(c2[8250],_mm_xor_si128(c2[5623],_mm_xor_si128(c2[6283],_mm_xor_si128(c2[1028],_mm_xor_si128(c2[9611],_mm_xor_si128(c2[4321],_mm_xor_si128(c2[4981],_mm_xor_si128(c2[8314],_mm_xor_si128(c2[5010],_mm_xor_si128(c2[5671],_mm_xor_si128(c2[6331],_mm_xor_si128(c2[426],_mm_xor_si128(c2[4386],_mm_xor_si128(c2[5050],_mm_xor_si128(c2[5710],_mm_xor_si128(c2[5738],_mm_xor_si128(c2[4415],_mm_xor_si128(c2[1772],_mm_xor_si128(c2[7093],_mm_xor_si128(c2[7089],_mm_xor_si128(c2[5772],_mm_xor_si128(c2[6432],_mm_xor_si128(c2[5795],_mm_xor_si128(c2[1176],_mm_xor_si128(c2[512],_mm_xor_si128(c2[1172],_mm_xor_si128(c2[9133],_mm_xor_si128(c2[9787],_mm_xor_si128(c2[7814],_mm_xor_si128(c2[8474],_mm_xor_si128(c2[7835],_mm_xor_si128(c2[3220],_mm_xor_si128(c2[3214],_mm_xor_si128(c2[7206],_mm_xor_si128(c2[5234],_mm_xor_si128(c2[8530],_mm_xor_si128(c2[9190],_mm_xor_si128(c2[7238],_mm_xor_si128(c2[6583],_mm_xor_si128(c2[7903],c2[8563])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 4
d2[60]=_mm_xor_si128(c2[4],c2[2023]);
//row: 5
d2[75]=_mm_xor_si128(c2[7264],_mm_xor_si128(c2[2642],_mm_xor_si128(c2[668],_mm_xor_si128(c2[2644],_mm_xor_si128(c2[1320],_mm_xor_si128(c2[4660],_mm_xor_si128(c2[5321],_mm_xor_si128(c2[7302],_mm_xor_si128(c2[7300],_mm_xor_si128(c2[1384],_mm_xor_si128(c2[71],_mm_xor_si128(c2[3370],_mm_xor_si128(c2[6694],_mm_xor_si128(c2[8014],_mm_xor_si128(c2[4056],_mm_xor_si128(c2[9992],_mm_xor_si128(c2[790],_mm_xor_si128(c2[7385],_mm_xor_si128(c2[130],_mm_xor_si128(c2[5431],_mm_xor_si128(c2[2794],_mm_xor_si128(c2[161],_mm_xor_si128(c2[4801],_mm_xor_si128(c2[6123],_mm_xor_si128(c2[10093],_mm_xor_si128(c2[212],_mm_xor_si128(c2[4837],_mm_xor_si128(c2[9457],_mm_xor_si128(c2[247],_mm_xor_si128(c2[242],_mm_xor_si128(c2[2882],_mm_xor_si128(c2[6224],_mm_xor_si128(c2[8204],_mm_xor_si128(c2[8202],_mm_xor_si128(c2[3610],_mm_xor_si128(c2[5580],_mm_xor_si128(c2[3611],_mm_xor_si128(c2[999],_mm_xor_si128(c2[10241],_mm_xor_si128(c2[8259],_mm_xor_si128(c2[3004],_mm_xor_si128(c2[1028],_mm_xor_si128(c2[6972],_mm_xor_si128(c2[10268],_mm_xor_si128(c2[10290],_mm_xor_si128(c2[7001],_mm_xor_si128(c2[8322],_mm_xor_si128(c2[2402],_mm_xor_si128(c2[6362],_mm_xor_si128(c2[7686],_mm_xor_si128(c2[7714],_mm_xor_si128(c2[6391],_mm_xor_si128(c2[3763],_mm_xor_si128(c2[9069],_mm_xor_si128(c2[9065],_mm_xor_si128(c2[8408],_mm_xor_si128(c2[1813],_mm_xor_si128(c2[7771],_mm_xor_si128(c2[3152],_mm_xor_si128(c2[3163],_mm_xor_si128(c2[550],_mm_xor_si128(c2[1204],_mm_xor_si128(c2[10450],_mm_xor_si128(c2[9811],_mm_xor_si128(c2[5196],_mm_xor_si128(c2[5190],_mm_xor_si128(c2[9182],_mm_xor_si128(c2[7210],_mm_xor_si128(c2[607],_mm_xor_si128(c2[9214],_mm_xor_si128(c2[8559],_mm_xor_si128(c2[10539],c2[3281]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 6
d2[90]=_mm_xor_si128(c2[4632],_mm_xor_si128(c2[4141],_mm_xor_si128(c2[4921],_mm_xor_si128(c2[2976],_mm_xor_si128(c2[8315],_mm_xor_si128(c2[10422],_mm_xor_si128(c2[3183],c2[9180])))))));
//row: 7
d2[105]=_mm_xor_si128(c2[8584],_mm_xor_si128(c2[1359],_mm_xor_si128(c2[793],_mm_xor_si128(c2[212],_mm_xor_si128(c2[4210],c2[1741])))));
//row: 8
d2[120]=_mm_xor_si128(c2[3],_mm_xor_si128(c2[9250],_mm_xor_si128(c2[5940],_mm_xor_si128(c2[4628],_mm_xor_si128(c2[3966],_mm_xor_si128(c2[1994],_mm_xor_si128(c2[2654],_mm_xor_si128(c2[5942],_mm_xor_si128(c2[3970],_mm_xor_si128(c2[4630],_mm_xor_si128(c2[3311],_mm_xor_si128(c2[7958],_mm_xor_si128(c2[6631],_mm_xor_si128(c2[8619],_mm_xor_si128(c2[6632],_mm_xor_si128(c2[7292],_mm_xor_si128(c2[41],_mm_xor_si128(c2[8613],_mm_xor_si128(c2[9273],_mm_xor_si128(c2[5976],_mm_xor_si128(c2[4682],_mm_xor_si128(c2[3370],_mm_xor_si128(c2[3369],_mm_xor_si128(c2[2042],_mm_xor_si128(c2[6668],_mm_xor_si128(c2[4681],_mm_xor_si128(c2[5341],_mm_xor_si128(c2[9992],_mm_xor_si128(c2[8680],_mm_xor_si128(c2[753],_mm_xor_si128(c2[10000],_mm_xor_si128(c2[7354],_mm_xor_si128(c2[5382],_mm_xor_si128(c2[6042],_mm_xor_si128(c2[8678],_mm_xor_si128(c2[4088],_mm_xor_si128(c2[2761],_mm_xor_si128(c2[124],_mm_xor_si128(c2[8711],_mm_xor_si128(c2[9371],_mm_xor_si128(c2[3428],_mm_xor_si128(c2[1441],_mm_xor_si128(c2[2101],_mm_xor_si128(c2[8744],_mm_xor_si128(c2[7417],_mm_xor_si128(c2[6092],_mm_xor_si128(c2[4780],_mm_xor_si128(c2[3459],_mm_xor_si128(c2[1472],_mm_xor_si128(c2[2132],_mm_xor_si128(c2[8114],_mm_xor_si128(c2[6787],_mm_xor_si128(c2[9421],_mm_xor_si128(c2[7449],_mm_xor_si128(c2[8109],_mm_xor_si128(c2[2832],_mm_xor_si128(c2[845],_mm_xor_si128(c2[1505],_mm_xor_si128(c2[3510],_mm_xor_si128(c2[2198],_mm_xor_si128(c2[8135],_mm_xor_si128(c2[6163],_mm_xor_si128(c2[6823],_mm_xor_si128(c2[2196],_mm_xor_si128(c2[224],_mm_xor_si128(c2[884],_mm_xor_si128(c2[3545],_mm_xor_si128(c2[2233],_mm_xor_si128(c2[3540],_mm_xor_si128(c2[1568],_mm_xor_si128(c2[2228],_mm_xor_si128(c2[6180],_mm_xor_si128(c2[4208],_mm_xor_si128(c2[4868],_mm_xor_si128(c2[9522],_mm_xor_si128(c2[8195],_mm_xor_si128(c2[943],_mm_xor_si128(c2[10175],_mm_xor_si128(c2[941],_mm_xor_si128(c2[9513],_mm_xor_si128(c2[10173],_mm_xor_si128(c2[6908],_mm_xor_si128(c2[5581],_mm_xor_si128(c2[8893],_mm_xor_si128(c2[6906],_mm_xor_si128(c2[7566],_mm_xor_si128(c2[6909],_mm_xor_si128(c2[4922],_mm_xor_si128(c2[5582],_mm_xor_si128(c2[4297],_mm_xor_si128(c2[2970],_mm_xor_si128(c2[2980],_mm_xor_si128(c2[1653],_mm_xor_si128(c2[998],_mm_xor_si128(c2[9570],_mm_xor_si128(c2[10230],_mm_xor_si128(c2[6302],_mm_xor_si128(c2[4990],_mm_xor_si128(c2[4326],_mm_xor_si128(c2[3014],_mm_xor_si128(c2[10270],_mm_xor_si128(c2[8283],_mm_xor_si128(c2[8943],_mm_xor_si128(c2[10273],_mm_xor_si128(c2[3044],_mm_xor_si128(c2[1717],_mm_xor_si128(c2[10299],_mm_xor_si128(c2[8312],_mm_xor_si128(c2[8972],_mm_xor_si128(c2[1061],_mm_xor_si128(c2[9633],_mm_xor_si128(c2[10293],_mm_xor_si128(c2[5700],_mm_xor_si128(c2[4388],_mm_xor_si128(c2[9660],_mm_xor_si128(c2[7688],_mm_xor_si128(c2[8348],_mm_xor_si128(c2[425],_mm_xor_si128(c2[9012],_mm_xor_si128(c2[9672],_mm_xor_si128(c2[453],_mm_xor_si128(c2[9700],_mm_xor_si128(c2[9704],_mm_xor_si128(c2[8377],_mm_xor_si128(c2[7061],_mm_xor_si128(c2[5074],_mm_xor_si128(c2[5734],_mm_xor_si128(c2[1808],_mm_xor_si128(c2[481],_mm_xor_si128(c2[1804],_mm_xor_si128(c2[492],_mm_xor_si128(c2[1147],_mm_xor_si128(c2[9734],_mm_xor_si128(c2[10394],_mm_xor_si128(c2[1151],_mm_xor_si128(c2[510],_mm_xor_si128(c2[9757],_mm_xor_si128(c2[6450],_mm_xor_si128(c2[4478],_mm_xor_si128(c2[5138],_mm_xor_si128(c2[6461],_mm_xor_si128(c2[4474],_mm_xor_si128(c2[5134],_mm_xor_si128(c2[3848],_mm_xor_si128(c2[2521],_mm_xor_si128(c2[4502],_mm_xor_si128(c2[2530],_mm_xor_si128(c2[3190],_mm_xor_si128(c2[3189],_mm_xor_si128(c2[1202],_mm_xor_si128(c2[1862],_mm_xor_si128(c2[2550],_mm_xor_si128(c2[1238],_mm_xor_si128(c2[8494],_mm_xor_si128(c2[7182],_mm_xor_si128(c2[8503],_mm_xor_si128(c2[6516],_mm_xor_si128(c2[7176],_mm_xor_si128(c2[1239],_mm_xor_si128(c2[1921],_mm_xor_si128(c2[609],_mm_xor_si128(c2[10508],_mm_xor_si128(c2[8521],_mm_xor_si128(c2[9181],_mm_xor_si128(c2[3905],_mm_xor_si128(c2[1933],_mm_xor_si128(c2[2593],_mm_xor_si128(c2[1953],_mm_xor_si128(c2[641],_mm_xor_si128(c2[1298],_mm_xor_si128(c2[10530],_mm_xor_si128(c2[3278],_mm_xor_si128(c2[1291],_mm_xor_si128(c2[1951],c2[5262]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 9
d2[135]=_mm_xor_si128(c2[5950],_mm_xor_si128(c2[7950],_mm_xor_si128(c2[9552],_mm_xor_si128(c2[8923],_mm_xor_si128(c2[1051],_mm_xor_si128(c2[3163],_mm_xor_si128(c2[8465],c2[9192])))))));
//row: 10
d2[150]=_mm_xor_si128(c2[2677],_mm_xor_si128(c2[4689],_mm_xor_si128(c2[4084],_mm_xor_si128(c2[4184],_mm_xor_si128(c2[2227],c2[3065])))));
//row: 11
d2[165]=_mm_xor_si128(c2[7923],_mm_xor_si128(c2[1320],_mm_xor_si128(c2[1980],_mm_xor_si128(c2[3301],_mm_xor_si128(c2[7932],_mm_xor_si128(c2[1327],_mm_xor_si128(c2[5943],_mm_xor_si128(c2[3303],_mm_xor_si128(c2[7934],_mm_xor_si128(c2[8582],_mm_xor_si128(c2[5319],_mm_xor_si128(c2[9275],_mm_xor_si128(c2[9935],_mm_xor_si128(c2[5980],_mm_xor_si128(c2[37],_mm_xor_si128(c2[7961],_mm_xor_si128(c2[2018],_mm_xor_si128(c2[2017],_mm_xor_si128(c2[2043],_mm_xor_si128(c2[6014],_mm_xor_si128(c2[6674],_mm_xor_si128(c2[730],_mm_xor_si128(c2[5346],_mm_xor_si128(c2[4029],_mm_xor_si128(c2[8645],_mm_xor_si128(c2[7353],_mm_xor_si128(c2[750],_mm_xor_si128(c2[1410],_mm_xor_si128(c2[8673],_mm_xor_si128(c2[2730],_mm_xor_si128(c2[4715],_mm_xor_si128(c2[9331],_mm_xor_si128(c2[1449],_mm_xor_si128(c2[6065],_mm_xor_si128(c2[8044],_mm_xor_si128(c2[2101],_mm_xor_si128(c2[789],_mm_xor_si128(c2[5405],_mm_xor_si128(c2[6090],_mm_xor_si128(c2[10061],_mm_xor_si128(c2[162],_mm_xor_si128(c2[3453],_mm_xor_si128(c2[8084],_mm_xor_si128(c2[820],_mm_xor_si128(c2[5436],_mm_xor_si128(c2[5460],_mm_xor_si128(c2[9431],_mm_xor_si128(c2[10091],_mm_xor_si128(c2[6782],_mm_xor_si128(c2[854],_mm_xor_si128(c2[193],_mm_xor_si128(c2[4809],_mm_xor_si128(c2[871],_mm_xor_si128(c2[5502],_mm_xor_si128(c2[5496],_mm_xor_si128(c2[10112],_mm_xor_si128(c2[10116],_mm_xor_si128(c2[4173],_mm_xor_si128(c2[906],_mm_xor_si128(c2[5522],_mm_xor_si128(c2[901],_mm_xor_si128(c2[5532],_mm_xor_si128(c2[3541],_mm_xor_si128(c2[8172],_mm_xor_si128(c2[6883],_mm_xor_si128(c2[280],_mm_xor_si128(c2[940],_mm_xor_si128(c2[8863],_mm_xor_si128(c2[2920],_mm_xor_si128(c2[8861],_mm_xor_si128(c2[2918],_mm_xor_si128(c2[4269],_mm_xor_si128(c2[8225],_mm_xor_si128(c2[8885],_mm_xor_si128(c2[6254],_mm_xor_si128(c2[311],_mm_xor_si128(c2[4270],_mm_xor_si128(c2[8886],_mm_xor_si128(c2[1658],_mm_xor_si128(c2[5614],_mm_xor_si128(c2[6274],_mm_xor_si128(c2[341],_mm_xor_si128(c2[4957],_mm_xor_si128(c2[8918],_mm_xor_si128(c2[2975],_mm_xor_si128(c2[3663],_mm_xor_si128(c2[7634],_mm_xor_si128(c2[8294],_mm_xor_si128(c2[1687],_mm_xor_si128(c2[6303],_mm_xor_si128(c2[7631],_mm_xor_si128(c2[1688],_mm_xor_si128(c2[4328],_mm_xor_si128(c2[390],_mm_xor_si128(c2[4361],_mm_xor_si128(c2[5021],_mm_xor_si128(c2[7660],_mm_xor_si128(c2[1717],_mm_xor_si128(c2[8981],_mm_xor_si128(c2[3038],_mm_xor_si128(c2[3061],_mm_xor_si128(c2[7692],_mm_xor_si128(c2[7021],_mm_xor_si128(c2[1093],_mm_xor_si128(c2[8345],_mm_xor_si128(c2[2402],_mm_xor_si128(c2[8373],_mm_xor_si128(c2[1770],_mm_xor_si128(c2[2430],_mm_xor_si128(c2[7050],_mm_xor_si128(c2[1122],_mm_xor_si128(c2[4422],_mm_xor_si128(c2[9038],_mm_xor_si128(c2[9728],_mm_xor_si128(c2[3125],_mm_xor_si128(c2[3785],_mm_xor_si128(c2[9724],_mm_xor_si128(c2[3781],_mm_xor_si128(c2[9067],_mm_xor_si128(c2[3124],_mm_xor_si128(c2[1140],_mm_xor_si128(c2[8430],_mm_xor_si128(c2[2502],_mm_xor_si128(c2[3811],_mm_xor_si128(c2[8442],_mm_xor_si128(c2[3822],_mm_xor_si128(c2[8438],_mm_xor_si128(c2[1209],_mm_xor_si128(c2[5165],_mm_xor_si128(c2[5825],_mm_xor_si128(c2[1863],_mm_xor_si128(c2[6494],_mm_xor_si128(c2[550],_mm_xor_si128(c2[5166],_mm_xor_si128(c2[10470],_mm_xor_si128(c2[3882],_mm_xor_si128(c2[4542],_mm_xor_si128(c2[5855],_mm_xor_si128(c2[10471],_mm_xor_si128(c2[5864],_mm_xor_si128(c2[10480],_mm_xor_si128(c2[9841],_mm_xor_si128(c2[3253],_mm_xor_si128(c2[3913],_mm_xor_si128(c2[7869],_mm_xor_si128(c2[1926],_mm_xor_si128(c2[1266],_mm_xor_si128(c2[5882],_mm_xor_si128(c2[9873],_mm_xor_si128(c2[3270],_mm_xor_si128(c2[3930],_mm_xor_si128(c2[9218],_mm_xor_si128(c2[3275],_mm_xor_si128(c2[639],_mm_xor_si128(c2[5255],c2[5919])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 12
d2[180]=_mm_xor_si128(c2[6611],_mm_xor_si128(c2[4663],_mm_xor_si128(c2[8227],_mm_xor_si128(c2[2981],_mm_xor_si128(c2[1716],c2[545])))));
//row: 13
d2[195]=_mm_xor_si128(c2[8582],_mm_xor_si128(c2[9242],_mm_xor_si128(c2[4620],_mm_xor_si128(c2[2646],_mm_xor_si128(c2[4622],_mm_xor_si128(c2[7933],_mm_xor_si128(c2[5978],_mm_xor_si128(c2[6638],_mm_xor_si128(c2[7299],_mm_xor_si128(c2[9280],_mm_xor_si128(c2[2702],_mm_xor_si128(c2[3362],_mm_xor_si128(c2[2049],_mm_xor_si128(c2[5348],_mm_xor_si128(c2[8012],_mm_xor_si128(c2[8672],_mm_xor_si128(c2[9992],_mm_xor_si128(c2[6034],_mm_xor_si128(c2[6041],_mm_xor_si128(c2[2768],_mm_xor_si128(c2[9363],_mm_xor_si128(c2[2108],_mm_xor_si128(c2[6764],_mm_xor_si128(c2[7424],_mm_xor_si128(c2[4772],_mm_xor_si128(c2[2139],_mm_xor_si128(c2[6134],_mm_xor_si128(c2[6794],_mm_xor_si128(c2[8101],_mm_xor_si128(c2[1512],_mm_xor_si128(c2[2190],_mm_xor_si128(c2[6815],_mm_xor_si128(c2[876],_mm_xor_si128(c2[6819],_mm_xor_si128(c2[2225],_mm_xor_si128(c2[2220],_mm_xor_si128(c2[4860],_mm_xor_si128(c2[7542],_mm_xor_si128(c2[8202],_mm_xor_si128(c2[10182],_mm_xor_si128(c2[10180],_mm_xor_si128(c2[4928],_mm_xor_si128(c2[5588],_mm_xor_si128(c2[7573],_mm_xor_si128(c2[5589],_mm_xor_si128(c2[2317],_mm_xor_si128(c2[2977],_mm_xor_si128(c2[1660],_mm_xor_si128(c2[10237],_mm_xor_si128(c2[4322],_mm_xor_si128(c2[4982],_mm_xor_si128(c2[3006],_mm_xor_si128(c2[8950],_mm_xor_si128(c2[1064],_mm_xor_si128(c2[1724],_mm_xor_si128(c2[8979],_mm_xor_si128(c2[10300],_mm_xor_si128(c2[4380],_mm_xor_si128(c2[8340],_mm_xor_si128(c2[9664],_mm_xor_si128(c2[9032],_mm_xor_si128(c2[9692],_mm_xor_si128(c2[8384],_mm_xor_si128(c2[5741],_mm_xor_si128(c2[10387],_mm_xor_si128(c2[488],_mm_xor_si128(c2[484],_mm_xor_si128(c2[10386],_mm_xor_si128(c2[9764],_mm_xor_si128(c2[5130],_mm_xor_si128(c2[5141],_mm_xor_si128(c2[1868],_mm_xor_si128(c2[2528],_mm_xor_si128(c2[3182],_mm_xor_si128(c2[1869],_mm_xor_si128(c2[570],_mm_xor_si128(c2[1230],_mm_xor_si128(c2[7174],_mm_xor_si128(c2[7183],_mm_xor_si128(c2[10500],_mm_xor_si128(c2[601],_mm_xor_si128(c2[9188],_mm_xor_si128(c2[2585],_mm_xor_si128(c2[1931],_mm_xor_si128(c2[10532],_mm_xor_si128(c2[633],_mm_xor_si128(c2[10537],c2[1958])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 14
d2[210]=_mm_xor_si128(c2[7927],_mm_xor_si128(c2[369],_mm_xor_si128(c2[4421],_mm_xor_si128(c2[10385],_mm_xor_si128(c2[5794],c2[8554])))));
//row: 15
d2[225]=_mm_xor_si128(c2[5951],_mm_xor_si128(c2[1329],_mm_xor_si128(c2[9914],_mm_xor_si128(c2[671],_mm_xor_si128(c2[1331],_mm_xor_si128(c2[4622],_mm_xor_si128(c2[3332],_mm_xor_si128(c2[3993],_mm_xor_si128(c2[5314],_mm_xor_si128(c2[5974],_mm_xor_si128(c2[6638],_mm_xor_si128(c2[71],_mm_xor_si128(c2[9302],_mm_xor_si128(c2[2042],_mm_xor_si128(c2[5381],_mm_xor_si128(c2[6701],_mm_xor_si128(c2[2083],_mm_xor_si128(c2[2743],_mm_xor_si128(c2[10021],_mm_xor_si128(c2[6072],_mm_xor_si128(c2[8701],_mm_xor_si128(c2[9361],_mm_xor_si128(c2[4118],_mm_xor_si128(c2[1481],_mm_xor_si128(c2[9392],_mm_xor_si128(c2[3488],_mm_xor_si128(c2[4810],_mm_xor_si128(c2[8105],_mm_xor_si128(c2[8765],_mm_xor_si128(c2[9458],_mm_xor_si128(c2[3524],_mm_xor_si128(c2[7484],_mm_xor_si128(c2[8144],_mm_xor_si128(c2[9493],_mm_xor_si128(c2[9488],_mm_xor_si128(c2[909],_mm_xor_si128(c2[1569],_mm_xor_si128(c2[4896],_mm_xor_si128(c2[6876],_mm_xor_si128(c2[6874],_mm_xor_si128(c2[2282],_mm_xor_si128(c2[4267],_mm_xor_si128(c2[1623],_mm_xor_si128(c2[2283],_mm_xor_si128(c2[8233],_mm_xor_si128(c2[10230],_mm_xor_si128(c2[8913],_mm_xor_si128(c2[6271],_mm_xor_si128(c2[6931],_mm_xor_si128(c2[1691],_mm_xor_si128(c2[10274],_mm_xor_si128(c2[4984],_mm_xor_si128(c2[5644],_mm_xor_si128(c2[8977],_mm_xor_si128(c2[5673],_mm_xor_si128(c2[6334],_mm_xor_si128(c2[6994],_mm_xor_si128(c2[8980],_mm_xor_si128(c2[1089],_mm_xor_si128(c2[5049],_mm_xor_si128(c2[5713],_mm_xor_si128(c2[6373],_mm_xor_si128(c2[6401],_mm_xor_si128(c2[5078],_mm_xor_si128(c2[2435],_mm_xor_si128(c2[7741],_mm_xor_si128(c2[7752],_mm_xor_si128(c2[6420],_mm_xor_si128(c2[7080],_mm_xor_si128(c2[6458],_mm_xor_si128(c2[1839],_mm_xor_si128(c2[1175],_mm_xor_si128(c2[1835],_mm_xor_si128(c2[9781],_mm_xor_si128(c2[10450],_mm_xor_si128(c2[8462],_mm_xor_si128(c2[9122],_mm_xor_si128(c2[9788],_mm_xor_si128(c2[8498],_mm_xor_si128(c2[3883],_mm_xor_si128(c2[3877],_mm_xor_si128(c2[7869],_mm_xor_si128(c2[5882],_mm_xor_si128(c2[9193],_mm_xor_si128(c2[9853],_mm_xor_si128(c2[7901],_mm_xor_si128(c2[7231],_mm_xor_si128(c2[8551],c2[9211]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 16
d2[240]=_mm_xor_si128(c2[2646],_mm_xor_si128(c2[8583],_mm_xor_si128(c2[6609],_mm_xor_si128(c2[8585],_mm_xor_si128(c2[42],_mm_xor_si128(c2[703],_mm_xor_si128(c2[2684],_mm_xor_si128(c2[9274],_mm_xor_si128(c2[7325],_mm_xor_si128(c2[6012],_mm_xor_si128(c2[9311],_mm_xor_si128(c2[2076],_mm_xor_si128(c2[3396],_mm_xor_si128(c2[9997],_mm_xor_si128(c2[5379],_mm_xor_si128(c2[6731],_mm_xor_si128(c2[2767],_mm_xor_si128(c2[6071],_mm_xor_si128(c2[813],_mm_xor_si128(c2[8735],_mm_xor_si128(c2[6102],_mm_xor_si128(c2[183],_mm_xor_si128(c2[1505],_mm_xor_si128(c2[5460],_mm_xor_si128(c2[6153],_mm_xor_si128(c2[219],_mm_xor_si128(c2[4839],_mm_xor_si128(c2[6188],_mm_xor_si128(c2[6183],_mm_xor_si128(c2[8823],_mm_xor_si128(c2[1591],_mm_xor_si128(c2[3571],_mm_xor_si128(c2[3584],_mm_xor_si128(c2[9551],_mm_xor_si128(c2[962],_mm_xor_si128(c2[9552],_mm_xor_si128(c2[6940],_mm_xor_si128(c2[5623],_mm_xor_si128(c2[3641],_mm_xor_si128(c2[2975],_mm_xor_si128(c2[8945],_mm_xor_si128(c2[6969],_mm_xor_si128(c2[2354],_mm_xor_si128(c2[5672],_mm_xor_si128(c2[2383],_mm_xor_si128(c2[3704],_mm_xor_si128(c2[8343],_mm_xor_si128(c2[1744],_mm_xor_si128(c2[3068],_mm_xor_si128(c2[3096],_mm_xor_si128(c2[1773],_mm_xor_si128(c2[9704],_mm_xor_si128(c2[4451],_mm_xor_si128(c2[4447],_mm_xor_si128(c2[3790],_mm_xor_si128(c2[3153],_mm_xor_si128(c2[9093],_mm_xor_si128(c2[9104],_mm_xor_si128(c2[6491],_mm_xor_si128(c2[7145],_mm_xor_si128(c2[5832],_mm_xor_si128(c2[5193],_mm_xor_si128(c2[578],_mm_xor_si128(c2[572],_mm_xor_si128(c2[4564],_mm_xor_si128(c2[2592],_mm_xor_si128(c2[6548],_mm_xor_si128(c2[3900],_mm_xor_si128(c2[4596],_mm_xor_si128(c2[3941],c2[5921]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 17
d2[255]=_mm_xor_si128(c2[4631],_mm_xor_si128(c2[427],_mm_xor_si128(c2[7086],_mm_xor_si128(c2[7783],c2[1298]))));
//row: 18
d2[270]=_mm_xor_si128(c2[4661],_mm_xor_si128(c2[4993],_mm_xor_si128(c2[3041],_mm_xor_si128(c2[10448],c2[9810]))));
//row: 19
d2[285]=_mm_xor_si128(c2[1991],_mm_xor_si128(c2[7956],_mm_xor_si128(c2[10119],_mm_xor_si128(c2[6848],c2[2952]))));
//row: 20
d2[300]=_mm_xor_si128(c2[5941],_mm_xor_si128(c2[1334],_mm_xor_si128(c2[9904],_mm_xor_si128(c2[1321],_mm_xor_si128(c2[8584],_mm_xor_si128(c2[3337],_mm_xor_si128(c2[3998],_mm_xor_si128(c2[5979],_mm_xor_si128(c2[61],_mm_xor_si128(c2[9307],_mm_xor_si128(c2[2047],_mm_xor_si128(c2[5371],_mm_xor_si128(c2[6691],_mm_xor_si128(c2[2733],_mm_xor_si128(c2[7361],_mm_xor_si128(c2[10026],_mm_xor_si128(c2[6062],_mm_xor_si128(c2[9366],_mm_xor_si128(c2[4123],_mm_xor_si128(c2[1471],_mm_xor_si128(c2[9397],_mm_xor_si128(c2[3493],_mm_xor_si128(c2[4800],_mm_xor_si128(c2[8770],_mm_xor_si128(c2[9463],_mm_xor_si128(c2[3514],_mm_xor_si128(c2[8134],_mm_xor_si128(c2[9483],_mm_xor_si128(c2[9493],_mm_xor_si128(c2[1574],_mm_xor_si128(c2[4901],_mm_xor_si128(c2[6881],_mm_xor_si128(c2[6879],_mm_xor_si128(c2[7542],_mm_xor_si128(c2[2287],_mm_xor_si128(c2[4272],_mm_xor_si128(c2[2288],_mm_xor_si128(c2[10235],_mm_xor_si128(c2[8918],_mm_xor_si128(c2[6936],_mm_xor_si128(c2[4960],_mm_xor_si128(c2[1681],_mm_xor_si128(c2[10264],_mm_xor_si128(c2[5649],_mm_xor_si128(c2[8982],_mm_xor_si128(c2[5678],_mm_xor_si128(c2[6999],_mm_xor_si128(c2[1094],_mm_xor_si128(c2[5054],_mm_xor_si128(c2[6363],_mm_xor_si128(c2[6391],_mm_xor_si128(c2[5083],_mm_xor_si128(c2[2440],_mm_xor_si128(c2[7746],_mm_xor_si128(c2[7742],_mm_xor_si128(c2[7085],_mm_xor_si128(c2[6463],_mm_xor_si128(c2[1844],_mm_xor_si128(c2[1840],_mm_xor_si128(c2[9786],_mm_xor_si128(c2[10440],_mm_xor_si128(c2[9127],_mm_xor_si128(c2[8503],_mm_xor_si128(c2[3873],_mm_xor_si128(c2[3882],_mm_xor_si128(c2[7874],_mm_xor_si128(c2[5887],_mm_xor_si128(c2[9843],_mm_xor_si128(c2[7891],_mm_xor_si128(c2[7236],c2[9216]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 21
d2[315]=_mm_xor_si128(c2[3342],_mm_xor_si128(c2[6757],_mm_xor_si128(c2[5113],_mm_xor_si128(c2[1264],c2[5923]))));
//row: 22
d2[330]=_mm_xor_si128(c2[5941],_mm_xor_si128(c2[10262],_mm_xor_si128(c2[9637],c2[1841])));
//row: 23
d2[345]=_mm_xor_si128(c2[5981],_mm_xor_si128(c2[9967],_mm_xor_si128(c2[3607],c2[5172])));
//row: 24
d2[360]=_mm_xor_si128(c2[672],_mm_xor_si128(c2[6609],_mm_xor_si128(c2[4620],_mm_xor_si128(c2[6611],_mm_xor_si128(c2[2],_mm_xor_si128(c2[8612],_mm_xor_si128(c2[9273],_mm_xor_si128(c2[695],_mm_xor_si128(c2[5351],_mm_xor_si128(c2[4023],_mm_xor_si128(c2[7322],_mm_xor_si128(c2[102],_mm_xor_si128(c2[1422],_mm_xor_si128(c2[8023],_mm_xor_si128(c2[1421],_mm_xor_si128(c2[4742],_mm_xor_si128(c2[793],_mm_xor_si128(c2[4082],_mm_xor_si128(c2[1440],_mm_xor_si128(c2[9398],_mm_xor_si128(c2[6761],_mm_xor_si128(c2[4113],_mm_xor_si128(c2[8768],_mm_xor_si128(c2[10090],_mm_xor_si128(c2[3486],_mm_xor_si128(c2[4179],_mm_xor_si128(c2[8804],_mm_xor_si128(c2[2850],_mm_xor_si128(c2[4214],_mm_xor_si128(c2[4209],_mm_xor_si128(c2[6849],_mm_xor_si128(c2[10176],_mm_xor_si128(c2[1597],_mm_xor_si128(c2[1595],_mm_xor_si128(c2[7562],_mm_xor_si128(c2[9547],_mm_xor_si128(c2[7563],_mm_xor_si128(c2[4951],_mm_xor_si128(c2[3634],_mm_xor_si128(c2[1652],_mm_xor_si128(c2[8259],_mm_xor_si128(c2[6971],_mm_xor_si128(c2[4980],_mm_xor_si128(c2[365],_mm_xor_si128(c2[3698],_mm_xor_si128(c2[394],_mm_xor_si128(c2[1715],_mm_xor_si128(c2[6369],_mm_xor_si128(c2[10329],_mm_xor_si128(c2[1094],_mm_xor_si128(c2[1122],_mm_xor_si128(c2[10358],_mm_xor_si128(c2[7715],_mm_xor_si128(c2[2462],_mm_xor_si128(c2[2473],_mm_xor_si128(c2[1801],_mm_xor_si128(c2[1179],_mm_xor_si128(c2[7119],_mm_xor_si128(c2[7115],_mm_xor_si128(c2[4502],_mm_xor_si128(c2[5171],_mm_xor_si128(c2[3843],_mm_xor_si128(c2[3219],_mm_xor_si128(c2[9163],_mm_xor_si128(c2[9157],_mm_xor_si128(c2[2590],_mm_xor_si128(c2[603],_mm_xor_si128(c2[4574],_mm_xor_si128(c2[2622],_mm_xor_si128(c2[1952],c2[3932]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 25
d2[375]=_mm_xor_si128(c2[7291],_mm_xor_si128(c2[8768],_mm_xor_si128(c2[7470],c2[3731])));
//row: 26
d2[390]=_mm_xor_si128(c2[1990],_mm_xor_si128(c2[2048],_mm_xor_si128(c2[6070],c2[1776])));
//row: 27
d2[405]=_mm_xor_si128(c2[3340],_mm_xor_si128(c2[5474],c2[6180]));
//row: 28
d2[420]=_mm_xor_si128(c2[2],_mm_xor_si128(c2[7382],_mm_xor_si128(c2[5862],c2[9222])));
//row: 29
d2[435]=_mm_xor_si128(c2[9914],_mm_xor_si128(c2[5292],_mm_xor_si128(c2[3303],_mm_xor_si128(c2[4634],_mm_xor_si128(c2[5294],_mm_xor_si128(c2[7295],_mm_xor_si128(c2[7956],_mm_xor_si128(c2[9277],_mm_xor_si128(c2[9937],_mm_xor_si128(c2[5324],_mm_xor_si128(c2[4034],_mm_xor_si128(c2[2706],_mm_xor_si128(c2[6005],_mm_xor_si128(c2[9344],_mm_xor_si128(c2[90],_mm_xor_si128(c2[6031],_mm_xor_si128(c2[6691],_mm_xor_si128(c2[3425],_mm_xor_si128(c2[10020],_mm_xor_si128(c2[2105],_mm_xor_si128(c2[2765],_mm_xor_si128(c2[8081],_mm_xor_si128(c2[5444],_mm_xor_si128(c2[2796],_mm_xor_si128(c2[7451],_mm_xor_si128(c2[8773],_mm_xor_si128(c2[1509],_mm_xor_si128(c2[2169],_mm_xor_si128(c2[2862],_mm_xor_si128(c2[7472],_mm_xor_si128(c2[873],_mm_xor_si128(c2[1533],_mm_xor_si128(c2[2882],_mm_xor_si128(c2[2892],_mm_xor_si128(c2[4872],_mm_xor_si128(c2[5532],_mm_xor_si128(c2[8859],_mm_xor_si128(c2[280],_mm_xor_si128(c2[278],_mm_xor_si128(c2[6245],_mm_xor_si128(c2[8230],_mm_xor_si128(c2[5586],_mm_xor_si128(c2[6246],_mm_xor_si128(c2[3634],_mm_xor_si128(c2[2317],_mm_xor_si128(c2[10234],_mm_xor_si128(c2[335],_mm_xor_si128(c2[5654],_mm_xor_si128(c2[3663],_mm_xor_si128(c2[8947],_mm_xor_si128(c2[9607],_mm_xor_si128(c2[2381],_mm_xor_si128(c2[9636],_mm_xor_si128(c2[10297],_mm_xor_si128(c2[398],_mm_xor_si128(c2[5052],_mm_xor_si128(c2[9012],_mm_xor_si128(c2[9661],_mm_xor_si128(c2[10321],_mm_xor_si128(c2[422],_mm_xor_si128(c2[10364],_mm_xor_si128(c2[9041],_mm_xor_si128(c2[6398],_mm_xor_si128(c2[1145],_mm_xor_si128(c2[1141],_mm_xor_si128(c2[10383],_mm_xor_si128(c2[484],_mm_xor_si128(c2[10421],_mm_xor_si128(c2[5802],_mm_xor_si128(c2[5138],_mm_xor_si128(c2[5798],_mm_xor_si128(c2[3185],_mm_xor_si128(c2[3854],_mm_xor_si128(c2[1866],_mm_xor_si128(c2[2526],_mm_xor_si128(c2[4507],_mm_xor_si128(c2[1902],_mm_xor_si128(c2[7831],_mm_xor_si128(c2[7840],_mm_xor_si128(c2[1273],_mm_xor_si128(c2[9845],_mm_xor_si128(c2[2582],_mm_xor_si128(c2[3242],_mm_xor_si128(c2[1290],_mm_xor_si128(c2[635],_mm_xor_si128(c2[1955],c2[2615]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 30
d2[450]=_mm_xor_si128(c2[660],_mm_xor_si128(c2[6612],_mm_xor_si128(c2[3963],_mm_xor_si128(c2[4623],_mm_xor_si128(c2[5954],_mm_xor_si128(c2[6614],_mm_xor_si128(c2[6610],_mm_xor_si128(c2[8615],_mm_xor_si128(c2[8616],_mm_xor_si128(c2[9276],_mm_xor_si128(c2[38],_mm_xor_si128(c2[698],_mm_xor_si128(c2[5354],_mm_xor_si128(c2[4026],_mm_xor_si128(c2[6665],_mm_xor_si128(c2[7325],_mm_xor_si128(c2[90],_mm_xor_si128(c2[1410],_mm_xor_si128(c2[7351],_mm_xor_si128(c2[8011],_mm_xor_si128(c2[4745],_mm_xor_si128(c2[121],_mm_xor_si128(c2[781],_mm_xor_si128(c2[3425],_mm_xor_si128(c2[4085],_mm_xor_si128(c2[9401],_mm_xor_si128(c2[6764],_mm_xor_si128(c2[3456],_mm_xor_si128(c2[4116],_mm_xor_si128(c2[8771],_mm_xor_si128(c2[9433],_mm_xor_si128(c2[10093],_mm_xor_si128(c2[2829],_mm_xor_si128(c2[3489],_mm_xor_si128(c2[4182],_mm_xor_si128(c2[8132],_mm_xor_si128(c2[8792],_mm_xor_si128(c2[2193],_mm_xor_si128(c2[2853],_mm_xor_si128(c2[4202],_mm_xor_si128(c2[3552],_mm_xor_si128(c2[4212],_mm_xor_si128(c2[6192],_mm_xor_si128(c2[6852],_mm_xor_si128(c2[10179],_mm_xor_si128(c2[1600],_mm_xor_si128(c2[938],_mm_xor_si128(c2[1598],_mm_xor_si128(c2[7565],_mm_xor_si128(c2[8890],_mm_xor_si128(c2[9550],_mm_xor_si128(c2[6906],_mm_xor_si128(c2[7566],_mm_xor_si128(c2[4932],_mm_xor_si128(c2[4954],_mm_xor_si128(c2[3637],_mm_xor_si128(c2[995],_mm_xor_si128(c2[1655],_mm_xor_si128(c2[6974],_mm_xor_si128(c2[4983],_mm_xor_si128(c2[10267],_mm_xor_si128(c2[368],_mm_xor_si128(c2[3701],_mm_xor_si128(c2[10296],_mm_xor_si128(c2[397],_mm_xor_si128(c2[1058],_mm_xor_si128(c2[1718],_mm_xor_si128(c2[6991],_mm_xor_si128(c2[6372],_mm_xor_si128(c2[9672],_mm_xor_si128(c2[10332],_mm_xor_si128(c2[422],_mm_xor_si128(c2[1082],_mm_xor_si128(c2[1110],_mm_xor_si128(c2[10361],_mm_xor_si128(c2[7058],_mm_xor_si128(c2[7718],_mm_xor_si128(c2[2465],_mm_xor_si128(c2[2461],_mm_xor_si128(c2[1144],_mm_xor_si128(c2[1804],_mm_xor_si128(c2[1182],_mm_xor_si128(c2[6462],_mm_xor_si128(c2[7122],_mm_xor_si128(c2[6458],_mm_xor_si128(c2[7118],_mm_xor_si128(c2[4505],_mm_xor_si128(c2[4514],_mm_xor_si128(c2[5174],_mm_xor_si128(c2[3186],_mm_xor_si128(c2[3846],_mm_xor_si128(c2[3222],_mm_xor_si128(c2[9151],_mm_xor_si128(c2[8500],_mm_xor_si128(c2[9160],_mm_xor_si128(c2[2593],_mm_xor_si128(c2[10505],_mm_xor_si128(c2[606],_mm_xor_si128(c2[3902],_mm_xor_si128(c2[4562],_mm_xor_si128(c2[2610],_mm_xor_si128(c2[1955],_mm_xor_si128(c2[3275],c2[3935])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 31
d2[465]=_mm_xor_si128(c2[3964],_mm_xor_si128(c2[2640],_mm_xor_si128(c2[9901],_mm_xor_si128(c2[8592],_mm_xor_si128(c2[7927],_mm_xor_si128(c2[6603],_mm_xor_si128(c2[9903],_mm_xor_si128(c2[7934],_mm_xor_si128(c2[8594],_mm_xor_si128(c2[1360],_mm_xor_si128(c2[36],_mm_xor_si128(c2[2021],_mm_xor_si128(c2[697],_mm_xor_si128(c2[4002],_mm_xor_si128(c2[2018],_mm_xor_si128(c2[2678],_mm_xor_si128(c2[5974],_mm_xor_si128(c2[8643],_mm_xor_si128(c2[7334],_mm_xor_si128(c2[7330],_mm_xor_si128(c2[6006],_mm_xor_si128(c2[70],_mm_xor_si128(c2[9305],_mm_xor_si128(c2[3394],_mm_xor_si128(c2[2070],_mm_xor_si128(c2[4714],_mm_xor_si128(c2[3390],_mm_xor_si128(c2[756],_mm_xor_si128(c2[9331],_mm_xor_si128(c2[9991],_mm_xor_si128(c2[8049],_mm_xor_si128(c2[6725],_mm_xor_si128(c2[4085],_mm_xor_si128(c2[2761],_mm_xor_si128(c2[7389],_mm_xor_si128(c2[5405],_mm_xor_si128(c2[6065],_mm_xor_si128(c2[2131],_mm_xor_si128(c2[822],_mm_xor_si128(c2[10053],_mm_xor_si128(c2[8744],_mm_xor_si128(c2[7420],_mm_xor_si128(c2[6096],_mm_xor_si128(c2[1501],_mm_xor_si128(c2[192],_mm_xor_si128(c2[2823],_mm_xor_si128(c2[1514],_mm_xor_si128(c2[6793],_mm_xor_si128(c2[4809],_mm_xor_si128(c2[5469],_mm_xor_si128(c2[7471],_mm_xor_si128(c2[6162],_mm_xor_si128(c2[1537],_mm_xor_si128(c2[213],_mm_xor_si128(c2[6157],_mm_xor_si128(c2[4173],_mm_xor_si128(c2[4833],_mm_xor_si128(c2[3519],_mm_xor_si128(c2[7506],_mm_xor_si128(c2[6182],_mm_xor_si128(c2[7501],_mm_xor_si128(c2[6192],_mm_xor_si128(c2[10141],_mm_xor_si128(c2[8172],_mm_xor_si128(c2[8832],_mm_xor_si128(c2[2924],_mm_xor_si128(c2[1600],_mm_xor_si128(c2[4904],_mm_xor_si128(c2[3580],_mm_xor_si128(c2[4902],_mm_xor_si128(c2[3578],_mm_xor_si128(c2[310],_mm_xor_si128(c2[9545],_mm_xor_si128(c2[2280],_mm_xor_si128(c2[971],_mm_xor_si128(c2[311],_mm_xor_si128(c2[8886],_mm_xor_si128(c2[9546],_mm_xor_si128(c2[8258],_mm_xor_si128(c2[6934],_mm_xor_si128(c2[6941],_mm_xor_si128(c2[5617],_mm_xor_si128(c2[4959],_mm_xor_si128(c2[2975],_mm_xor_si128(c2[3635],_mm_xor_si128(c2[10263],_mm_xor_si128(c2[8954],_mm_xor_si128(c2[8287],_mm_xor_si128(c2[6963],_mm_xor_si128(c2[3672],_mm_xor_si128(c2[1688],_mm_xor_si128(c2[2348],_mm_xor_si128(c2[6990],_mm_xor_si128(c2[5681],_mm_xor_si128(c2[3701],_mm_xor_si128(c2[2377],_mm_xor_si128(c2[5022],_mm_xor_si128(c2[3038],_mm_xor_si128(c2[3698],_mm_xor_si128(c2[9661],_mm_xor_si128(c2[8352],_mm_xor_si128(c2[3062],_mm_xor_si128(c2[1753],_mm_xor_si128(c2[4386],_mm_xor_si128(c2[2402],_mm_xor_si128(c2[3062],_mm_xor_si128(c2[4414],_mm_xor_si128(c2[3090],_mm_xor_si128(c2[3091],_mm_xor_si128(c2[1782],_mm_xor_si128(c2[463],_mm_xor_si128(c2[9698],_mm_xor_si128(c2[5769],_mm_xor_si128(c2[4445],_mm_xor_si128(c2[5765],_mm_xor_si128(c2[4441],_mm_xor_si128(c2[5108],_mm_xor_si128(c2[3124],_mm_xor_si128(c2[3784],_mm_xor_si128(c2[4471],_mm_xor_si128(c2[3162],_mm_xor_si128(c2[10411],_mm_xor_si128(c2[9102],_mm_xor_si128(c2[10422],_mm_xor_si128(c2[8438],_mm_xor_si128(c2[9098],_mm_xor_si128(c2[7809],_mm_xor_si128(c2[6485],_mm_xor_si128(c2[8463],_mm_xor_si128(c2[7154],_mm_xor_si128(c2[7150],_mm_xor_si128(c2[5166],_mm_xor_si128(c2[5826],_mm_xor_si128(c2[6511],_mm_xor_si128(c2[5202],_mm_xor_si128(c2[1896],_mm_xor_si128(c2[572],_mm_xor_si128(c2[1890],_mm_xor_si128(c2[581],_mm_xor_si128(c2[5882],_mm_xor_si128(c2[4573],_mm_xor_si128(c2[3910],_mm_xor_si128(c2[2586],_mm_xor_si128(c2[7866],_mm_xor_si128(c2[5882],_mm_xor_si128(c2[6542],_mm_xor_si128(c2[5914],_mm_xor_si128(c2[4590],_mm_xor_si128(c2[5259],_mm_xor_si128(c2[3935],_mm_xor_si128(c2[7239],_mm_xor_si128(c2[5255],c2[5915]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 32
d2[480]=_mm_xor_si128(c2[7266],_mm_xor_si128(c2[2644],_mm_xor_si128(c2[10],_mm_xor_si128(c2[670],_mm_xor_si128(c2[1986],_mm_xor_si128(c2[2646],_mm_xor_si128(c2[4626],_mm_xor_si128(c2[4662],_mm_xor_si128(c2[4663],_mm_xor_si128(c2[5323],_mm_xor_si128(c2[6644],_mm_xor_si128(c2[7304],_mm_xor_si128(c2[1386],_mm_xor_si128(c2[73],_mm_xor_si128(c2[2712],_mm_xor_si128(c2[3372],_mm_xor_si128(c2[6696],_mm_xor_si128(c2[8016],_mm_xor_si128(c2[3398],_mm_xor_si128(c2[4058],_mm_xor_si128(c2[792],_mm_xor_si128(c2[6727],_mm_xor_si128(c2[7387],_mm_xor_si128(c2[10031],_mm_xor_si128(c2[132],_mm_xor_si128(c2[5433],_mm_xor_si128(c2[2796],_mm_xor_si128(c2[10062],_mm_xor_si128(c2[163],_mm_xor_si128(c2[4803],_mm_xor_si128(c2[5465],_mm_xor_si128(c2[6125],_mm_xor_si128(c2[9420],_mm_xor_si128(c2[10080],_mm_xor_si128(c2[214],_mm_xor_si128(c2[4179],_mm_xor_si128(c2[4839],_mm_xor_si128(c2[8799],_mm_xor_si128(c2[9459],_mm_xor_si128(c2[249],_mm_xor_si128(c2[10143],_mm_xor_si128(c2[244],_mm_xor_si128(c2[2224],_mm_xor_si128(c2[2884],_mm_xor_si128(c2[6211],_mm_xor_si128(c2[8191],_mm_xor_si128(c2[7544],_mm_xor_si128(c2[8204],_mm_xor_si128(c2[3612],_mm_xor_si128(c2[4922],_mm_xor_si128(c2[5582],_mm_xor_si128(c2[2953],_mm_xor_si128(c2[3613],_mm_xor_si128(c2[1001],_mm_xor_si128(c2[10243],_mm_xor_si128(c2[7601],_mm_xor_si128(c2[8261],_mm_xor_si128(c2[3006],_mm_xor_si128(c2[1030],_mm_xor_si128(c2[6314],_mm_xor_si128(c2[6974],_mm_xor_si128(c2[9606],_mm_xor_si128(c2[10292],_mm_xor_si128(c2[6343],_mm_xor_si128(c2[7003],_mm_xor_si128(c2[7664],_mm_xor_si128(c2[8324],_mm_xor_si128(c2[2404],_mm_xor_si128(c2[5704],_mm_xor_si128(c2[6364],_mm_xor_si128(c2[7028],_mm_xor_si128(c2[7688],_mm_xor_si128(c2[5049],_mm_xor_si128(c2[7716],_mm_xor_si128(c2[6393],_mm_xor_si128(c2[3090],_mm_xor_si128(c2[3750],_mm_xor_si128(c2[9071],_mm_xor_si128(c2[9067],_mm_xor_si128(c2[7750],_mm_xor_si128(c2[8410],_mm_xor_si128(c2[7773],_mm_xor_si128(c2[2494],_mm_xor_si128(c2[3154],_mm_xor_si128(c2[2490],_mm_xor_si128(c2[3150],_mm_xor_si128(c2[552],_mm_xor_si128(c2[546],_mm_xor_si128(c2[1206],_mm_xor_si128(c2[9792],_mm_xor_si128(c2[10452],_mm_xor_si128(c2[9813],_mm_xor_si128(c2[5198],_mm_xor_si128(c2[4532],_mm_xor_si128(c2[5192],_mm_xor_si128(c2[9184],_mm_xor_si128(c2[6552],_mm_xor_si128(c2[7212],_mm_xor_si128(c2[10508],_mm_xor_si128(c2[609],_mm_xor_si128(c2[9216],_mm_xor_si128(c2[8561],_mm_xor_si128(c2[9881],c2[10541])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 33
d2[495]=_mm_xor_si128(c2[4662],_mm_xor_si128(c2[2708],_mm_xor_si128(c2[8260],c2[1294])));
//row: 34
d2[510]=_mm_xor_si128(c2[670],_mm_xor_si128(c2[8804],_mm_xor_si128(c2[9698],c2[3161])));
//row: 35
d2[525]=_mm_xor_si128(c2[7274],_mm_xor_si128(c2[2652],_mm_xor_si128(c2[663],_mm_xor_si128(c2[2654],_mm_xor_si128(c2[4655],_mm_xor_si128(c2[5316],_mm_xor_si128(c2[7297],_mm_xor_si128(c2[4664],_mm_xor_si128(c2[1394],_mm_xor_si128(c2[66],_mm_xor_si128(c2[3365],_mm_xor_si128(c2[6704],_mm_xor_si128(c2[8024],_mm_xor_si128(c2[4051],_mm_xor_si128(c2[785],_mm_xor_si128(c2[7380],_mm_xor_si128(c2[125],_mm_xor_si128(c2[5441],_mm_xor_si128(c2[2804],_mm_xor_si128(c2[156],_mm_xor_si128(c2[4811],_mm_xor_si128(c2[6133],_mm_xor_si128(c2[10088],_mm_xor_si128(c2[9430],_mm_xor_si128(c2[222],_mm_xor_si128(c2[4832],_mm_xor_si128(c2[9452],_mm_xor_si128(c2[242],_mm_xor_si128(c2[252],_mm_xor_si128(c2[2892],_mm_xor_si128(c2[6219],_mm_xor_si128(c2[8199],_mm_xor_si128(c2[8197],_mm_xor_si128(c2[3605],_mm_xor_si128(c2[5590],_mm_xor_si128(c2[3606],_mm_xor_si128(c2[994],_mm_xor_si128(c2[10236],_mm_xor_si128(c2[8254],_mm_xor_si128(c2[3014],_mm_xor_si128(c2[1023],_mm_xor_si128(c2[6967],_mm_xor_si128(c2[1029],_mm_xor_si128(c2[10300],_mm_xor_si128(c2[6996],_mm_xor_si128(c2[8317],_mm_xor_si128(c2[2412],_mm_xor_si128(c2[6372],_mm_xor_si128(c2[7681],_mm_xor_si128(c2[7724],_mm_xor_si128(c2[6401],_mm_xor_si128(c2[3758],_mm_xor_si128(c2[9064],_mm_xor_si128(c2[9060],_mm_xor_si128(c2[8403],_mm_xor_si128(c2[7781],_mm_xor_si128(c2[3162],_mm_xor_si128(c2[3158],_mm_xor_si128(c2[545],_mm_xor_si128(c2[1214],_mm_xor_si128(c2[10445],_mm_xor_si128(c2[9821],_mm_xor_si128(c2[5191],_mm_xor_si128(c2[5200],_mm_xor_si128(c2[9192],_mm_xor_si128(c2[7205],_mm_xor_si128(c2[602],_mm_xor_si128(c2[9224],_mm_xor_si128(c2[8554],c2[10534])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 36
d2[540]=_mm_xor_si128(c2[7260],_mm_xor_si128(c2[10332],_mm_xor_si128(c2[7052],c2[3186])));
//row: 37
d2[555]=_mm_xor_si128(c2[5283],_mm_xor_si128(c2[5943],_mm_xor_si128(c2[1321],_mm_xor_si128(c2[9906],_mm_xor_si128(c2[1323],_mm_xor_si128(c2[2679],_mm_xor_si128(c2[3339],_mm_xor_si128(c2[4000],_mm_xor_si128(c2[5981],_mm_xor_si128(c2[7293],_mm_xor_si128(c2[9962],_mm_xor_si128(c2[63],_mm_xor_si128(c2[9309],_mm_xor_si128(c2[2049],_mm_xor_si128(c2[4713],_mm_xor_si128(c2[5373],_mm_xor_si128(c2[6693],_mm_xor_si128(c2[2735],_mm_xor_si128(c2[10028],_mm_xor_si128(c2[6064],_mm_xor_si128(c2[9368],_mm_xor_si128(c2[3450],_mm_xor_si128(c2[4110],_mm_xor_si128(c2[1473],_mm_xor_si128(c2[9399],_mm_xor_si128(c2[2820],_mm_xor_si128(c2[3480],_mm_xor_si128(c2[4802],_mm_xor_si128(c2[8772],_mm_xor_si128(c2[9450],_mm_xor_si128(c2[3516],_mm_xor_si128(c2[8136],_mm_xor_si128(c2[9485],_mm_xor_si128(c2[9480],_mm_xor_si128(c2[1561],_mm_xor_si128(c2[4243],_mm_xor_si128(c2[4903],_mm_xor_si128(c2[6883],_mm_xor_si128(c2[6881],_mm_xor_si128(c2[1629],_mm_xor_si128(c2[2289],_mm_xor_si128(c2[4274],_mm_xor_si128(c2[2290],_mm_xor_si128(c2[9577],_mm_xor_si128(c2[10237],_mm_xor_si128(c2[8920],_mm_xor_si128(c2[6938],_mm_xor_si128(c2[1023],_mm_xor_si128(c2[1683],_mm_xor_si128(c2[10266],_mm_xor_si128(c2[5651],_mm_xor_si128(c2[8324],_mm_xor_si128(c2[8984],_mm_xor_si128(c2[5680],_mm_xor_si128(c2[7001],_mm_xor_si128(c2[8322],_mm_xor_si128(c2[1081],_mm_xor_si128(c2[5041],_mm_xor_si128(c2[6365],_mm_xor_si128(c2[5733],_mm_xor_si128(c2[6393],_mm_xor_si128(c2[5070],_mm_xor_si128(c2[2442],_mm_xor_si128(c2[7088],_mm_xor_si128(c2[7748],_mm_xor_si128(c2[7744],_mm_xor_si128(c2[7087],_mm_xor_si128(c2[6450],_mm_xor_si128(c2[1831],_mm_xor_si128(c2[1842],_mm_xor_si128(c2[9128],_mm_xor_si128(c2[9788],_mm_xor_si128(c2[10442],_mm_xor_si128(c2[9129],_mm_xor_si128(c2[7830],_mm_xor_si128(c2[8490],_mm_xor_si128(c2[3875],_mm_xor_si128(c2[3884],_mm_xor_si128(c2[7201],_mm_xor_si128(c2[7861],_mm_xor_si128(c2[5889],_mm_xor_si128(c2[9845],_mm_xor_si128(c2[7233],_mm_xor_si128(c2[7893],_mm_xor_si128(c2[7238],c2[9218])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 38
d2[570]=_mm_xor_si128(c2[5947],_mm_xor_si128(c2[6875],_mm_xor_si128(c2[6901],c2[8288])));
//row: 39
d2[585]=_mm_xor_si128(c2[2017],_mm_xor_si128(c2[8021],_mm_xor_si128(c2[5500],c2[3213])));
//row: 40
d2[600]=_mm_xor_si128(c2[2640],_mm_xor_si128(c2[4866],c2[9751]));
//row: 41
d2[615]=_mm_xor_si128(c2[3333],_mm_xor_si128(c2[8681],_mm_xor_si128(c2[4903],c2[5821])));
//row: 42
d2[630]=_mm_xor_si128(c2[9912],_mm_xor_si128(c2[5290],_mm_xor_si128(c2[2641],_mm_xor_si128(c2[3301],_mm_xor_si128(c2[4632],_mm_xor_si128(c2[5292],_mm_xor_si128(c2[9253],_mm_xor_si128(c2[7293],_mm_xor_si128(c2[7294],_mm_xor_si128(c2[7954],_mm_xor_si128(c2[9275],_mm_xor_si128(c2[9935],_mm_xor_si128(c2[4032],_mm_xor_si128(c2[2704],_mm_xor_si128(c2[5343],_mm_xor_si128(c2[6003],_mm_xor_si128(c2[9342],_mm_xor_si128(c2[103],_mm_xor_si128(c2[6044],_mm_xor_si128(c2[6704],_mm_xor_si128(c2[3423],_mm_xor_si128(c2[9373],_mm_xor_si128(c2[10033],_mm_xor_si128(c2[2103],_mm_xor_si128(c2[2763],_mm_xor_si128(c2[6730],_mm_xor_si128(c2[8079],_mm_xor_si128(c2[5442],_mm_xor_si128(c2[2134],_mm_xor_si128(c2[2794],_mm_xor_si128(c2[7449],_mm_xor_si128(c2[8111],_mm_xor_si128(c2[8771],_mm_xor_si128(c2[1507],_mm_xor_si128(c2[2167],_mm_xor_si128(c2[2860],_mm_xor_si128(c2[6810],_mm_xor_si128(c2[7470],_mm_xor_si128(c2[871],_mm_xor_si128(c2[1531],_mm_xor_si128(c2[2880],_mm_xor_si128(c2[2230],_mm_xor_si128(c2[2890],_mm_xor_si128(c2[4870],_mm_xor_si128(c2[5530],_mm_xor_si128(c2[8857],_mm_xor_si128(c2[278],_mm_xor_si128(c2[10175],_mm_xor_si128(c2[276],_mm_xor_si128(c2[6243],_mm_xor_si128(c2[7568],_mm_xor_si128(c2[8228],_mm_xor_si128(c2[5584],_mm_xor_si128(c2[6244],_mm_xor_si128(c2[3632],_mm_xor_si128(c2[2315],_mm_xor_si128(c2[10232],_mm_xor_si128(c2[333],_mm_xor_si128(c2[5652],_mm_xor_si128(c2[3661],_mm_xor_si128(c2[8945],_mm_xor_si128(c2[9605],_mm_xor_si128(c2[2379],_mm_xor_si128(c2[8974],_mm_xor_si128(c2[9634],_mm_xor_si128(c2[10295],_mm_xor_si128(c2[396],_mm_xor_si128(c2[5050],_mm_xor_si128(c2[8350],_mm_xor_si128(c2[9010],_mm_xor_si128(c2[9674],_mm_xor_si128(c2[10334],_mm_xor_si128(c2[10362],_mm_xor_si128(c2[9039],_mm_xor_si128(c2[5736],_mm_xor_si128(c2[6396],_mm_xor_si128(c2[1143],_mm_xor_si128(c2[1154],_mm_xor_si128(c2[10381],_mm_xor_si128(c2[482],_mm_xor_si128(c2[10419],_mm_xor_si128(c2[5140],_mm_xor_si128(c2[5800],_mm_xor_si128(c2[5136],_mm_xor_si128(c2[5796],_mm_xor_si128(c2[3183],_mm_xor_si128(c2[3192],_mm_xor_si128(c2[3852],_mm_xor_si128(c2[1864],_mm_xor_si128(c2[2524],_mm_xor_si128(c2[1900],_mm_xor_si128(c2[7844],_mm_xor_si128(c2[7178],_mm_xor_si128(c2[7838],_mm_xor_si128(c2[1271],_mm_xor_si128(c2[9183],_mm_xor_si128(c2[9843],_mm_xor_si128(c2[2580],_mm_xor_si128(c2[3240],_mm_xor_si128(c2[1303],_mm_xor_si128(c2[633],_mm_xor_si128(c2[1953],c2[2613]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 43
d2[645]=_mm_xor_si128(c2[3301],_mm_xor_si128(c2[9253],_mm_xor_si128(c2[7264],_mm_xor_si128(c2[8580],_mm_xor_si128(c2[9240],_mm_xor_si128(c2[697],_mm_xor_si128(c2[1358],_mm_xor_si128(c2[2679],_mm_xor_si128(c2[3339],_mm_xor_si128(c2[3991],_mm_xor_si128(c2[7980],_mm_xor_si128(c2[6667],_mm_xor_si128(c2[9966],_mm_xor_si128(c2[2731],_mm_xor_si128(c2[4051],_mm_xor_si128(c2[9992],_mm_xor_si128(c2[93],_mm_xor_si128(c2[7386],_mm_xor_si128(c2[3422],_mm_xor_si128(c2[6066],_mm_xor_si128(c2[6726],_mm_xor_si128(c2[1483],_mm_xor_si128(c2[9390],_mm_xor_si128(c2[6757],_mm_xor_si128(c2[853],_mm_xor_si128(c2[2160],_mm_xor_si128(c2[5470],_mm_xor_si128(c2[6130],_mm_xor_si128(c2[6823],_mm_xor_si128(c2[874],_mm_xor_si128(c2[4834],_mm_xor_si128(c2[5494],_mm_xor_si128(c2[6843],_mm_xor_si128(c2[6853],_mm_xor_si128(c2[8833],_mm_xor_si128(c2[9493],_mm_xor_si128(c2[2261],_mm_xor_si128(c2[4241],_mm_xor_si128(c2[4239],_mm_xor_si128(c2[10206],_mm_xor_si128(c2[1632],_mm_xor_si128(c2[9547],_mm_xor_si128(c2[10207],_mm_xor_si128(c2[7595],_mm_xor_si128(c2[6278],_mm_xor_si128(c2[3636],_mm_xor_si128(c2[4296],_mm_xor_si128(c2[9600],_mm_xor_si128(c2[7624],_mm_xor_si128(c2[2349],_mm_xor_si128(c2[3009],_mm_xor_si128(c2[6342],_mm_xor_si128(c2[3038],_mm_xor_si128(c2[3699],_mm_xor_si128(c2[4359],_mm_xor_si128(c2[9013],_mm_xor_si128(c2[2414],_mm_xor_si128(c2[3063],_mm_xor_si128(c2[3723],_mm_xor_si128(c2[3751],_mm_xor_si128(c2[2443],_mm_xor_si128(c2[10359],_mm_xor_si128(c2[5106],_mm_xor_si128(c2[5102],_mm_xor_si128(c2[3785],_mm_xor_si128(c2[4445],_mm_xor_si128(c2[10387],_mm_xor_si128(c2[3823],_mm_xor_si128(c2[9763],_mm_xor_si128(c2[9099],_mm_xor_si128(c2[9759],_mm_xor_si128(c2[7146],_mm_xor_si128(c2[7800],_mm_xor_si128(c2[5827],_mm_xor_si128(c2[6487],_mm_xor_si128(c2[1203],_mm_xor_si128(c2[5863],_mm_xor_si128(c2[1233],_mm_xor_si128(c2[1242],_mm_xor_si128(c2[5234],_mm_xor_si128(c2[3247],_mm_xor_si128(c2[6543],_mm_xor_si128(c2[7203],_mm_xor_si128(c2[5251],_mm_xor_si128(c2[4596],_mm_xor_si128(c2[5916],c2[6576]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 44
d2[660]=_mm_xor_si128(c2[7262],_mm_xor_si128(c2[2640],_mm_xor_si128(c2[666],_mm_xor_si128(c2[2642],_mm_xor_si128(c2[9911],_mm_xor_si128(c2[4658],_mm_xor_si128(c2[5319],_mm_xor_si128(c2[7300],_mm_xor_si128(c2[1382],_mm_xor_si128(c2[69],_mm_xor_si128(c2[3368],_mm_xor_si128(c2[6692],_mm_xor_si128(c2[8012],_mm_xor_si128(c2[4054],_mm_xor_si128(c2[788],_mm_xor_si128(c2[7383],_mm_xor_si128(c2[128],_mm_xor_si128(c2[5444],_mm_xor_si128(c2[2792],_mm_xor_si128(c2[159],_mm_xor_si128(c2[4814],_mm_xor_si128(c2[6121],_mm_xor_si128(c2[10091],_mm_xor_si128(c2[210],_mm_xor_si128(c2[4835],_mm_xor_si128(c2[9455],_mm_xor_si128(c2[2203],_mm_xor_si128(c2[245],_mm_xor_si128(c2[240],_mm_xor_si128(c2[2880],_mm_xor_si128(c2[6222],_mm_xor_si128(c2[8202],_mm_xor_si128(c2[8200],_mm_xor_si128(c2[7541],_mm_xor_si128(c2[3608],_mm_xor_si128(c2[5593],_mm_xor_si128(c2[3609],_mm_xor_si128(c2[997],_mm_xor_si128(c2[10239],_mm_xor_si128(c2[8257],_mm_xor_si128(c2[3002],_mm_xor_si128(c2[1026],_mm_xor_si128(c2[6970],_mm_xor_si128(c2[10303],_mm_xor_si128(c2[6999],_mm_xor_si128(c2[8320],_mm_xor_si128(c2[2400],_mm_xor_si128(c2[6360],_mm_xor_si128(c2[7684],_mm_xor_si128(c2[7712],_mm_xor_si128(c2[6404],_mm_xor_si128(c2[3761],_mm_xor_si128(c2[9067],_mm_xor_si128(c2[9063],_mm_xor_si128(c2[8406],_mm_xor_si128(c2[7784],_mm_xor_si128(c2[3150],_mm_xor_si128(c2[3161],_mm_xor_si128(c2[548],_mm_xor_si128(c2[1202],_mm_xor_si128(c2[10448],_mm_xor_si128(c2[9824],_mm_xor_si128(c2[5194],_mm_xor_si128(c2[5203],_mm_xor_si128(c2[9180],_mm_xor_si128(c2[7208],_mm_xor_si128(c2[605],_mm_xor_si128(c2[9212],_mm_xor_si128(c2[8557],c2[10537])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 45
d2[675]=_mm_xor_si128(c2[701],_mm_xor_si128(c2[1507],c2[8885]));
}
}
#include "PHY/sse_intrin.h"
// generated code for Zc=256, byte encoding
static inline void ldpc256_byte(uint8_t *c,uint8_t *d) {
__m256i *csimd=(__m256i *)c,*dsimd=(__m256i *)d;
__m256i *c2,*d2;
int i2;
for (i2=0; i2<8; i2++) {
c2=&csimd[i2];
d2=&dsimd[i2];
//row: 0
d2[0]=_mm256_xor_si256(c2[9159],_mm256_xor_si256(c2[704],_mm256_xor_si256(c2[3523],_mm256_xor_si256(c2[8803],_mm256_xor_si256(c2[1778],_mm256_xor_si256(c2[5299],_mm256_xor_si256(c2[8818],_mm256_xor_si256(c2[743],_mm256_xor_si256(c2[5319],_mm256_xor_si256(c2[8837],_mm256_xor_si256(c2[10964],_mm256_xor_si256(c2[7443],_mm256_xor_si256(c2[7090],_mm256_xor_si256(c2[9923],_mm256_xor_si256(c2[10977],_mm256_xor_si256(c2[7104],_mm256_xor_si256(c2[1491],_mm256_xor_si256(c2[2546],_mm256_xor_si256(c2[7475],_mm256_xor_si256(c2[3616],_mm256_xor_si256(c2[10306],_mm256_xor_si256(c2[7844],_mm256_xor_si256(c2[10678],_mm256_xor_si256(c2[1879],_mm256_xor_si256(c2[1172],_mm256_xor_si256(c2[2947],_mm256_xor_si256(c2[6117],_mm256_xor_si256(c2[6823],_mm256_xor_si256(c2[9649],_mm256_xor_si256(c2[4725],_mm256_xor_si256(c2[11058],_mm256_xor_si256(c2[1927],_mm256_xor_si256(c2[2625],_mm256_xor_si256(c2[2980],_mm256_xor_si256(c2[5107],_mm256_xor_si256(c2[10038],_mm256_xor_si256(c2[7922],_mm256_xor_si256(c2[11109],_mm256_xor_si256(c2[2307],_mm256_xor_si256(c2[7943],_mm256_xor_si256(c2[3376],_mm256_xor_si256(c2[5140],_mm256_xor_si256(c2[9718],_mm256_xor_si256(c2[4803],_mm256_xor_si256(c2[583],_mm256_xor_si256(c2[6918],_mm256_xor_si256(c2[1302],_mm256_xor_si256(c2[1652],_mm256_xor_si256(c2[599],_mm256_xor_si256(c2[8352],_mm256_xor_si256(c2[5188],_mm256_xor_si256(c2[5895],_mm256_xor_si256(c2[9780],_mm256_xor_si256(c2[7671],_mm256_xor_si256(c2[4498],_mm256_xor_si256(c2[10853],_mm256_xor_si256(c2[4870],_mm256_xor_si256(c2[7335],_mm256_xor_si256(c2[1361],_mm256_xor_si256(c2[11223],_mm256_xor_si256(c2[9815],_mm256_xor_si256(c2[5607],_mm256_xor_si256(c2[7715],_mm256_xor_si256(c2[5956],_mm256_xor_si256(c2[11248],_mm256_xor_si256(c2[10192],c2[4560]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 1
d2[8]=_mm256_xor_si256(c2[9159],_mm256_xor_si256(c2[9511],_mm256_xor_si256(c2[1056],_mm256_xor_si256(c2[3875],_mm256_xor_si256(c2[9155],_mm256_xor_si256(c2[1778],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[5651],_mm256_xor_si256(c2[9170],_mm256_xor_si256(c2[743],_mm256_xor_si256(c2[1095],_mm256_xor_si256(c2[5671],_mm256_xor_si256(c2[9189],_mm256_xor_si256(c2[10964],_mm256_xor_si256(c2[53],_mm256_xor_si256(c2[7795],_mm256_xor_si256(c2[7442],_mm256_xor_si256(c2[10275],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[7456],_mm256_xor_si256(c2[1491],_mm256_xor_si256(c2[1843],_mm256_xor_si256(c2[2898],_mm256_xor_si256(c2[7827],_mm256_xor_si256(c2[3616],_mm256_xor_si256(c2[3968],_mm256_xor_si256(c2[10658],_mm256_xor_si256(c2[8196],_mm256_xor_si256(c2[11030],_mm256_xor_si256(c2[2231],_mm256_xor_si256(c2[1524],_mm256_xor_si256(c2[3299],_mm256_xor_si256(c2[6469],_mm256_xor_si256(c2[7175],_mm256_xor_si256(c2[9649],_mm256_xor_si256(c2[10001],_mm256_xor_si256(c2[5077],_mm256_xor_si256(c2[147],_mm256_xor_si256(c2[1927],_mm256_xor_si256(c2[2279],_mm256_xor_si256(c2[2977],_mm256_xor_si256(c2[3332],_mm256_xor_si256(c2[5107],_mm256_xor_si256(c2[5459],_mm256_xor_si256(c2[10390],_mm256_xor_si256(c2[8274],_mm256_xor_si256(c2[11109],_mm256_xor_si256(c2[198],_mm256_xor_si256(c2[2659],_mm256_xor_si256(c2[8295],_mm256_xor_si256(c2[3376],_mm256_xor_si256(c2[3728],_mm256_xor_si256(c2[5492],_mm256_xor_si256(c2[10070],_mm256_xor_si256(c2[5155],_mm256_xor_si256(c2[935],_mm256_xor_si256(c2[7270],_mm256_xor_si256(c2[1302],_mm256_xor_si256(c2[1654],_mm256_xor_si256(c2[2004],_mm256_xor_si256(c2[951],_mm256_xor_si256(c2[8352],_mm256_xor_si256(c2[8704],_mm256_xor_si256(c2[5540],_mm256_xor_si256(c2[6247],_mm256_xor_si256(c2[10132],_mm256_xor_si256(c2[8023],_mm256_xor_si256(c2[4850],_mm256_xor_si256(c2[10853],_mm256_xor_si256(c2[11205],_mm256_xor_si256(c2[5222],_mm256_xor_si256(c2[7687],_mm256_xor_si256(c2[1361],_mm256_xor_si256(c2[1713],_mm256_xor_si256(c2[304],_mm256_xor_si256(c2[10167],_mm256_xor_si256(c2[5607],_mm256_xor_si256(c2[5959],_mm256_xor_si256(c2[8067],_mm256_xor_si256(c2[6308],_mm256_xor_si256(c2[11248],_mm256_xor_si256(c2[337],_mm256_xor_si256(c2[10544],c2[4912])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 2
d2[16]=_mm256_xor_si256(c2[9511],_mm256_xor_si256(c2[1056],_mm256_xor_si256(c2[3523],_mm256_xor_si256(c2[3875],_mm256_xor_si256(c2[8803],_mm256_xor_si256(c2[9155],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[5299],_mm256_xor_si256(c2[5651],_mm256_xor_si256(c2[8818],_mm256_xor_si256(c2[9170],_mm256_xor_si256(c2[1095],_mm256_xor_si256(c2[5671],_mm256_xor_si256(c2[8837],_mm256_xor_si256(c2[9189],_mm256_xor_si256(c2[53],_mm256_xor_si256(c2[7795],_mm256_xor_si256(c2[7090],_mm256_xor_si256(c2[7442],_mm256_xor_si256(c2[10275],_mm256_xor_si256(c2[10977],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[7104],_mm256_xor_si256(c2[7456],_mm256_xor_si256(c2[1843],_mm256_xor_si256(c2[2898],_mm256_xor_si256(c2[7475],_mm256_xor_si256(c2[7827],_mm256_xor_si256(c2[3968],_mm256_xor_si256(c2[10306],_mm256_xor_si256(c2[10658],_mm256_xor_si256(c2[7844],_mm256_xor_si256(c2[8196],_mm256_xor_si256(c2[11030],_mm256_xor_si256(c2[1879],_mm256_xor_si256(c2[2231],_mm256_xor_si256(c2[1172],_mm256_xor_si256(c2[1524],_mm256_xor_si256(c2[3299],_mm256_xor_si256(c2[6117],_mm256_xor_si256(c2[6469],_mm256_xor_si256(c2[6823],_mm256_xor_si256(c2[7175],_mm256_xor_si256(c2[10001],_mm256_xor_si256(c2[5077],_mm256_xor_si256(c2[11058],_mm256_xor_si256(c2[147],_mm256_xor_si256(c2[2279],_mm256_xor_si256(c2[2625],_mm256_xor_si256(c2[2977],_mm256_xor_si256(c2[2980],_mm256_xor_si256(c2[3332],_mm256_xor_si256(c2[5459],_mm256_xor_si256(c2[10390],_mm256_xor_si256(c2[7922],_mm256_xor_si256(c2[8274],_mm256_xor_si256(c2[198],_mm256_xor_si256(c2[2659],_mm256_xor_si256(c2[7943],_mm256_xor_si256(c2[8295],_mm256_xor_si256(c2[3728],_mm256_xor_si256(c2[5140],_mm256_xor_si256(c2[5492],_mm256_xor_si256(c2[9718],_mm256_xor_si256(c2[10070],_mm256_xor_si256(c2[5155],_mm256_xor_si256(c2[583],_mm256_xor_si256(c2[935],_mm256_xor_si256(c2[6918],_mm256_xor_si256(c2[7270],_mm256_xor_si256(c2[1654],_mm256_xor_si256(c2[2004],_mm256_xor_si256(c2[599],_mm256_xor_si256(c2[951],_mm256_xor_si256(c2[8704],_mm256_xor_si256(c2[5540],_mm256_xor_si256(c2[5895],_mm256_xor_si256(c2[6247],_mm256_xor_si256(c2[10132],_mm256_xor_si256(c2[7671],_mm256_xor_si256(c2[8023],_mm256_xor_si256(c2[4498],_mm256_xor_si256(c2[4850],_mm256_xor_si256(c2[11205],_mm256_xor_si256(c2[4870],_mm256_xor_si256(c2[5222],_mm256_xor_si256(c2[7335],_mm256_xor_si256(c2[7687],_mm256_xor_si256(c2[1713],_mm256_xor_si256(c2[304],_mm256_xor_si256(c2[9815],_mm256_xor_si256(c2[10167],_mm256_xor_si256(c2[5959],_mm256_xor_si256(c2[7715],_mm256_xor_si256(c2[8067],_mm256_xor_si256(c2[5956],_mm256_xor_si256(c2[6308],_mm256_xor_si256(c2[337],_mm256_xor_si256(c2[10544],_mm256_xor_si256(c2[4560],c2[4912]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 3
d2[24]=_mm256_xor_si256(c2[9511],_mm256_xor_si256(c2[1056],_mm256_xor_si256(c2[3875],_mm256_xor_si256(c2[8803],_mm256_xor_si256(c2[9155],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[5651],_mm256_xor_si256(c2[8818],_mm256_xor_si256(c2[9170],_mm256_xor_si256(c2[1095],_mm256_xor_si256(c2[5671],_mm256_xor_si256(c2[9189],_mm256_xor_si256(c2[53],_mm256_xor_si256(c2[7795],_mm256_xor_si256(c2[7090],_mm256_xor_si256(c2[7442],_mm256_xor_si256(c2[10275],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[7104],_mm256_xor_si256(c2[7456],_mm256_xor_si256(c2[1843],_mm256_xor_si256(c2[2898],_mm256_xor_si256(c2[7827],_mm256_xor_si256(c2[3968],_mm256_xor_si256(c2[10658],_mm256_xor_si256(c2[7844],_mm256_xor_si256(c2[8196],_mm256_xor_si256(c2[11030],_mm256_xor_si256(c2[2231],_mm256_xor_si256(c2[1172],_mm256_xor_si256(c2[1524],_mm256_xor_si256(c2[3299],_mm256_xor_si256(c2[6469],_mm256_xor_si256(c2[6823],_mm256_xor_si256(c2[7175],_mm256_xor_si256(c2[10001],_mm256_xor_si256(c2[5077],_mm256_xor_si256(c2[147],_mm256_xor_si256(c2[2279],_mm256_xor_si256(c2[2977],_mm256_xor_si256(c2[2980],_mm256_xor_si256(c2[3332],_mm256_xor_si256(c2[5459],_mm256_xor_si256(c2[10390],_mm256_xor_si256(c2[7922],_mm256_xor_si256(c2[8274],_mm256_xor_si256(c2[198],_mm256_xor_si256(c2[2659],_mm256_xor_si256(c2[7943],_mm256_xor_si256(c2[8295],_mm256_xor_si256(c2[3728],_mm256_xor_si256(c2[5492],_mm256_xor_si256(c2[9718],_mm256_xor_si256(c2[10070],_mm256_xor_si256(c2[5155],_mm256_xor_si256(c2[935],_mm256_xor_si256(c2[6918],_mm256_xor_si256(c2[7270],_mm256_xor_si256(c2[1654],_mm256_xor_si256(c2[2004],_mm256_xor_si256(c2[951],_mm256_xor_si256(c2[8704],_mm256_xor_si256(c2[5540],_mm256_xor_si256(c2[5895],_mm256_xor_si256(c2[6247],_mm256_xor_si256(c2[10132],_mm256_xor_si256(c2[8023],_mm256_xor_si256(c2[4498],_mm256_xor_si256(c2[4850],_mm256_xor_si256(c2[11205],_mm256_xor_si256(c2[5222],_mm256_xor_si256(c2[7335],_mm256_xor_si256(c2[7687],_mm256_xor_si256(c2[1713],_mm256_xor_si256(c2[304],_mm256_xor_si256(c2[10167],_mm256_xor_si256(c2[5959],_mm256_xor_si256(c2[8067],_mm256_xor_si256(c2[5956],_mm256_xor_si256(c2[6308],_mm256_xor_si256(c2[337],_mm256_xor_si256(c2[10544],_mm256_xor_si256(c2[4560],c2[4912])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 4
d2[32]=_mm256_xor_si256(c2[10212],c2[2131]);
//row: 5
d2[40]=_mm256_xor_si256(c2[4579],_mm256_xor_si256(c2[7395],_mm256_xor_si256(c2[10214],_mm256_xor_si256(c2[4231],_mm256_xor_si256(c2[4582],_mm256_xor_si256(c2[8469],_mm256_xor_si256(c2[727],_mm256_xor_si256(c2[4246],_mm256_xor_si256(c2[4247],_mm256_xor_si256(c2[7426],_mm256_xor_si256(c2[739],_mm256_xor_si256(c2[4257],_mm256_xor_si256(c2[6384],_mm256_xor_si256(c2[2871],_mm256_xor_si256(c2[2518],_mm256_xor_si256(c2[758],_mm256_xor_si256(c2[5351],_mm256_xor_si256(c2[6405],_mm256_xor_si256(c2[2532],_mm256_xor_si256(c2[8182],_mm256_xor_si256(c2[9237],_mm256_xor_si256(c2[2903],_mm256_xor_si256(c2[10307],_mm256_xor_si256(c2[5734],_mm256_xor_si256(c2[3264],_mm256_xor_si256(c2[6098],_mm256_xor_si256(c2[8562],_mm256_xor_si256(c2[7863],_mm256_xor_si256(c2[9638],_mm256_xor_si256(c2[1537],_mm256_xor_si256(c2[2243],_mm256_xor_si256(c2[5077],_mm256_xor_si256(c2[145],_mm256_xor_si256(c2[6486],_mm256_xor_si256(c2[8610],_mm256_xor_si256(c2[9316],_mm256_xor_si256(c2[9671],_mm256_xor_si256(c2[535],_mm256_xor_si256(c2[5458],_mm256_xor_si256(c2[3350],_mm256_xor_si256(c2[6529],_mm256_xor_si256(c2[8998],_mm256_xor_si256(c2[3363],_mm256_xor_si256(c2[2663],_mm256_xor_si256(c2[10067],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[5138],_mm256_xor_si256(c2[231],_mm256_xor_si256(c2[7266],_mm256_xor_si256(c2[2338],_mm256_xor_si256(c2[7985],_mm256_xor_si256(c2[8343],_mm256_xor_si256(c2[7282],_mm256_xor_si256(c2[3780],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[1315],_mm256_xor_si256(c2[10112],_mm256_xor_si256(c2[5200],_mm256_xor_si256(c2[3091],_mm256_xor_si256(c2[11189],_mm256_xor_si256(c2[6273],_mm256_xor_si256(c2[290],_mm256_xor_si256(c2[2755],_mm256_xor_si256(c2[8052],_mm256_xor_si256(c2[6643],_mm256_xor_si256(c2[5235],_mm256_xor_si256(c2[1027],_mm256_xor_si256(c2[3143],_mm256_xor_si256(c2[1376],_mm256_xor_si256(c2[6676],_mm256_xor_si256(c2[5620],_mm256_xor_si256(c2[11251],c2[9843]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 6
d2[48]=_mm256_xor_si256(c2[8101],_mm256_xor_si256(c2[7840],_mm256_xor_si256(c2[10016],_mm256_xor_si256(c2[1234],_mm256_xor_si256(c2[7255],_mm256_xor_si256(c2[4144],_mm256_xor_si256(c2[10500],c2[7014])))))));
//row: 7
d2[56]=_mm256_xor_si256(c2[9862],_mm256_xor_si256(c2[4241],_mm256_xor_si256(c2[10980],_mm256_xor_si256(c2[11024],_mm256_xor_si256(c2[2597],c2[3043])))));
//row: 8
d2[64]=_mm256_xor_si256(c2[3879],_mm256_xor_si256(c2[7394],_mm256_xor_si256(c2[6695],_mm256_xor_si256(c2[10210],_mm256_xor_si256(c2[9506],_mm256_xor_si256(c2[1414],_mm256_xor_si256(c2[1766],_mm256_xor_si256(c2[3523],_mm256_xor_si256(c2[6694],_mm256_xor_si256(c2[7046],_mm256_xor_si256(c2[5635],_mm256_xor_si256(c2[7761],_mm256_xor_si256(c2[21],_mm256_xor_si256(c2[19],_mm256_xor_si256(c2[3190],_mm256_xor_si256(c2[3542],_mm256_xor_si256(c2[3538],_mm256_xor_si256(c2[6709],_mm256_xor_si256(c2[7061],_mm256_xor_si256(c2[1424],_mm256_xor_si256(c2[6726],_mm256_xor_si256(c2[10241],_mm256_xor_si256(c2[39],_mm256_xor_si256(c2[3554],_mm256_xor_si256(c2[3557],_mm256_xor_si256(c2[6720],_mm256_xor_si256(c2[7072],_mm256_xor_si256(c2[5684],_mm256_xor_si256(c2[9207],_mm256_xor_si256(c2[2163],_mm256_xor_si256(c2[5686],_mm256_xor_si256(c2[1810],_mm256_xor_si256(c2[4981],_mm256_xor_si256(c2[5333],_mm256_xor_si256(c2[2512],_mm256_xor_si256(c2[4643],_mm256_xor_si256(c2[8166],_mm256_xor_si256(c2[5697],_mm256_xor_si256(c2[8868],_mm256_xor_si256(c2[9220],_mm256_xor_si256(c2[1824],_mm256_xor_si256(c2[4995],_mm256_xor_si256(c2[5347],_mm256_xor_si256(c2[7474],_mm256_xor_si256(c2[10997],_mm256_xor_si256(c2[8529],_mm256_xor_si256(c2[789],_mm256_xor_si256(c2[2195],_mm256_xor_si256(c2[5366],_mm256_xor_si256(c2[5718],_mm256_xor_si256(c2[9607],_mm256_xor_si256(c2[1859],_mm256_xor_si256(c2[5026],_mm256_xor_si256(c2[8197],_mm256_xor_si256(c2[8549],_mm256_xor_si256(c2[2564],_mm256_xor_si256(c2[5735],_mm256_xor_si256(c2[6087],_mm256_xor_si256(c2[5398],_mm256_xor_si256(c2[8913],_mm256_xor_si256(c2[7862],_mm256_xor_si256(c2[11025],_mm256_xor_si256(c2[114],_mm256_xor_si256(c2[7155],_mm256_xor_si256(c2[10326],_mm256_xor_si256(c2[10678],_mm256_xor_si256(c2[8930],_mm256_xor_si256(c2[1190],_mm256_xor_si256(c2[837],_mm256_xor_si256(c2[4000],_mm256_xor_si256(c2[4352],_mm256_xor_si256(c2[1543],_mm256_xor_si256(c2[4706],_mm256_xor_si256(c2[5058],_mm256_xor_si256(c2[4369],_mm256_xor_si256(c2[7892],_mm256_xor_si256(c2[10708],_mm256_xor_si256(c2[2960],_mm256_xor_si256(c2[5778],_mm256_xor_si256(c2[8949],_mm256_xor_si256(c2[9301],_mm256_xor_si256(c2[7910],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[8608],_mm256_xor_si256(c2[516],_mm256_xor_si256(c2[868],_mm256_xor_si256(c2[8963],_mm256_xor_si256(c2[871],_mm256_xor_si256(c2[1223],_mm256_xor_si256(c2[11090],_mm256_xor_si256(c2[3350],_mm256_xor_si256(c2[4758],_mm256_xor_si256(c2[8273],_mm256_xor_si256(c2[2642],_mm256_xor_si256(c2[5813],_mm256_xor_si256(c2[6165],_mm256_xor_si256(c2[5829],_mm256_xor_si256(c2[9344],_mm256_xor_si256(c2[8290],_mm256_xor_si256(c2[550],_mm256_xor_si256(c2[2663],_mm256_xor_si256(c2[5826],_mm256_xor_si256(c2[6178],_mm256_xor_si256(c2[6886],_mm256_xor_si256(c2[9367],_mm256_xor_si256(c2[1619],_mm256_xor_si256(c2[11123],_mm256_xor_si256(c2[3031],_mm256_xor_si256(c2[3383],_mm256_xor_si256(c2[4438],_mm256_xor_si256(c2[7601],_mm256_xor_si256(c2[7953],_mm256_xor_si256(c2[10786],_mm256_xor_si256(c2[3046],_mm256_xor_si256(c2[6566],_mm256_xor_si256(c2[9729],_mm256_xor_si256(c2[10081],_mm256_xor_si256(c2[1638],_mm256_xor_si256(c2[4801],_mm256_xor_si256(c2[5153],_mm256_xor_si256(c2[7285],_mm256_xor_si256(c2[10800],_mm256_xor_si256(c2[7635],_mm256_xor_si256(c2[11158],_mm256_xor_si256(c2[6582],_mm256_xor_si256(c2[9745],_mm256_xor_si256(c2[10097],_mm256_xor_si256(c2[3072],_mm256_xor_si256(c2[6595],_mm256_xor_si256(c2[11171],_mm256_xor_si256(c2[3431],_mm256_xor_si256(c2[615],_mm256_xor_si256(c2[3778],_mm256_xor_si256(c2[4130],_mm256_xor_si256(c2[2371],_mm256_xor_si256(c2[4500],_mm256_xor_si256(c2[8023],_mm256_xor_si256(c2[2391],_mm256_xor_si256(c2[5554],_mm256_xor_si256(c2[5906],_mm256_xor_si256(c2[10481],_mm256_xor_si256(c2[2389],_mm256_xor_si256(c2[2741],_mm256_xor_si256(c2[5573],_mm256_xor_si256(c2[9088],_mm256_xor_si256(c2[10853],_mm256_xor_si256(c2[2753],_mm256_xor_si256(c2[3105],_mm256_xor_si256(c2[2055],_mm256_xor_si256(c2[5218],_mm256_xor_si256(c2[5570],_mm256_xor_si256(c2[7344],_mm256_xor_si256(c2[10867],_mm256_xor_si256(c2[5943],_mm256_xor_si256(c2[9458],_mm256_xor_si256(c2[4535],_mm256_xor_si256(c2[7698],_mm256_xor_si256(c2[8050],_mm256_xor_si256(c2[1717],_mm256_xor_si256(c2[327],_mm256_xor_si256(c2[3842],_mm256_xor_si256(c2[2435],_mm256_xor_si256(c2[5606],_mm256_xor_si256(c2[5958],_mm256_xor_si256(c2[676],_mm256_xor_si256(c2[3847],_mm256_xor_si256(c2[4199],_mm256_xor_si256(c2[5968],_mm256_xor_si256(c2[9491],_mm256_xor_si256(c2[4912],_mm256_xor_si256(c2[8435],_mm256_xor_si256(c2[10551],_mm256_xor_si256(c2[2451],_mm256_xor_si256(c2[2803],c2[4915]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 9
d2[72]=_mm256_xor_si256(c2[2467],_mm256_xor_si256(c2[7765],_mm256_xor_si256(c2[4739],_mm256_xor_si256(c2[7568],_mm256_xor_si256(c2[5140],_mm256_xor_si256(c2[5200],_mm256_xor_si256(c2[10497],c2[8774])))))));
//row: 10
d2[80]=_mm256_xor_si256(c2[723],_mm256_xor_si256(c2[7428],_mm256_xor_si256(c2[2533],_mm256_xor_si256(c2[117],_mm256_xor_si256(c2[6113],c2[9377])))));
//row: 11
d2[88]=_mm256_xor_si256(c2[7751],_mm256_xor_si256(c2[5632],_mm256_xor_si256(c2[5984],_mm256_xor_si256(c2[10567],_mm256_xor_si256(c2[8800],_mm256_xor_si256(c2[2115],_mm256_xor_si256(c2[356],_mm256_xor_si256(c2[7395],_mm256_xor_si256(c2[5636],_mm256_xor_si256(c2[4578],_mm256_xor_si256(c2[370],_mm256_xor_si256(c2[9522],_mm256_xor_si256(c2[9874],_mm256_xor_si256(c2[3891],_mm256_xor_si256(c2[2132],_mm256_xor_si256(c2[7410],_mm256_xor_si256(c2[5651],_mm256_xor_si256(c2[3185],_mm256_xor_si256(c2[10598],_mm256_xor_si256(c2[8487],_mm256_xor_si256(c2[8839],_mm256_xor_si256(c2[3911],_mm256_xor_si256(c2[2144],_mm256_xor_si256(c2[7429],_mm256_xor_si256(c2[5670],_mm256_xor_si256(c2[9556],_mm256_xor_si256(c2[7445],_mm256_xor_si256(c2[7797],_mm256_xor_si256(c2[6035],_mm256_xor_si256(c2[4276],_mm256_xor_si256(c2[5682],_mm256_xor_si256(c2[3923],_mm256_xor_si256(c2[8515],_mm256_xor_si256(c2[6756],_mm256_xor_si256(c2[9569],_mm256_xor_si256(c2[7810],_mm256_xor_si256(c2[5696],_mm256_xor_si256(c2[3937],_mm256_xor_si256(c2[83],_mm256_xor_si256(c2[9235],_mm256_xor_si256(c2[9587],_mm256_xor_si256(c2[1138],_mm256_xor_si256(c2[10642],_mm256_xor_si256(c2[6067],_mm256_xor_si256(c2[4308],_mm256_xor_si256(c2[2208],_mm256_xor_si256(c2[97],_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[8898],_mm256_xor_si256(c2[7139],_mm256_xor_si256(c2[6436],_mm256_xor_si256(c2[4677],_mm256_xor_si256(c2[9270],_mm256_xor_si256(c2[7511],_mm256_xor_si256(c2[471],_mm256_xor_si256(c2[9975],_mm256_xor_si256(c2[11027],_mm256_xor_si256(c2[9268],_mm256_xor_si256(c2[1539],_mm256_xor_si256(c2[11043],_mm256_xor_si256(c2[4709],_mm256_xor_si256(c2[2950],_mm256_xor_si256(c2[5415],_mm256_xor_si256(c2[3648],_mm256_xor_si256(c2[8241],_mm256_xor_si256(c2[6130],_mm256_xor_si256(c2[6482],_mm256_xor_si256(c2[3317],_mm256_xor_si256(c2[1558],_mm256_xor_si256(c2[9650],_mm256_xor_si256(c2[7891],_mm256_xor_si256(c2[519],_mm256_xor_si256(c2[9671],_mm256_xor_si256(c2[10023],_mm256_xor_si256(c2[1217],_mm256_xor_si256(c2[10721],_mm256_xor_si256(c2[1572],_mm256_xor_si256(c2[11076],_mm256_xor_si256(c2[3699],_mm256_xor_si256(c2[1588],_mm256_xor_si256(c2[1940],_mm256_xor_si256(c2[8630],_mm256_xor_si256(c2[6871],_mm256_xor_si256(c2[6514],_mm256_xor_si256(c2[4755],_mm256_xor_si256(c2[9701],_mm256_xor_si256(c2[7590],_mm256_xor_si256(c2[7942],_mm256_xor_si256(c2[899],_mm256_xor_si256(c2[10403],_mm256_xor_si256(c2[6535],_mm256_xor_si256(c2[4768],_mm256_xor_si256(c2[6882],_mm256_xor_si256(c2[1968],_mm256_xor_si256(c2[11120],_mm256_xor_si256(c2[209],_mm256_xor_si256(c2[3732],_mm256_xor_si256(c2[1973],_mm256_xor_si256(c2[8310],_mm256_xor_si256(c2[6551],_mm256_xor_si256(c2[3395],_mm256_xor_si256(c2[1636],_mm256_xor_si256(c2[10438],_mm256_xor_si256(c2[8679],_mm256_xor_si256(c2[5510],_mm256_xor_si256(c2[3751],_mm256_xor_si256(c2[11157],_mm256_xor_si256(c2[9046],_mm256_xor_si256(c2[9398],_mm256_xor_si256(c2[244],_mm256_xor_si256(c2[9748],_mm256_xor_si256(c2[10454],_mm256_xor_si256(c2[8695],_mm256_xor_si256(c2[6944],_mm256_xor_si256(c2[4833],_mm256_xor_si256(c2[5185],_mm256_xor_si256(c2[3780],_mm256_xor_si256(c2[2021],_mm256_xor_si256(c2[4487],_mm256_xor_si256(c2[2720],_mm256_xor_si256(c2[8005],_mm256_xor_si256(c2[8372],_mm256_xor_si256(c2[6613],_mm256_xor_si256(c2[6263],_mm256_xor_si256(c2[4496],_mm256_xor_si256(c2[3090],_mm256_xor_si256(c2[1331],_mm256_xor_si256(c2[9445],_mm256_xor_si256(c2[7334],_mm256_xor_si256(c2[7686],_mm256_xor_si256(c2[3462],_mm256_xor_si256(c2[1703],_mm256_xor_si256(c2[5927],_mm256_xor_si256(c2[4160],_mm256_xor_si256(c2[11216],_mm256_xor_si256(c2[9105],_mm256_xor_si256(c2[9457],_mm256_xor_si256(c2[9815],_mm256_xor_si256(c2[8048],_mm256_xor_si256(c2[8407],_mm256_xor_si256(c2[6640],_mm256_xor_si256(c2[4199],_mm256_xor_si256(c2[2080],_mm256_xor_si256(c2[2432],_mm256_xor_si256(c2[6307],_mm256_xor_si256(c2[4548],_mm256_xor_si256(c2[4548],_mm256_xor_si256(c2[2789],_mm256_xor_si256(c2[9840],_mm256_xor_si256(c2[7729],_mm256_xor_si256(c2[8081],_mm256_xor_si256(c2[8784],_mm256_xor_si256(c2[7025],_mm256_xor_si256(c2[3152],_mm256_xor_si256(c2[1393],c2[5266])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 12
d2[96]=_mm256_xor_si256(c2[5],_mm256_xor_si256(c2[3537],_mm256_xor_si256(c2[7552],_mm256_xor_si256(c2[177],_mm256_xor_si256(c2[3735],c2[2752])))));
//row: 13
d2[104]=_mm256_xor_si256(c2[8449],_mm256_xor_si256(c2[8801],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[3173],_mm256_xor_si256(c2[8453],_mm256_xor_si256(c2[5989],_mm256_xor_si256(c2[1076],_mm256_xor_si256(c2[1428],_mm256_xor_si256(c2[4949],_mm256_xor_si256(c2[8468],_mm256_xor_si256(c2[33],_mm256_xor_si256(c2[385],_mm256_xor_si256(c2[4961],_mm256_xor_si256(c2[8487],_mm256_xor_si256(c2[10262],_mm256_xor_si256(c2[10614],_mm256_xor_si256(c2[7093],_mm256_xor_si256(c2[6740],_mm256_xor_si256(c2[8503],_mm256_xor_si256(c2[9573],_mm256_xor_si256(c2[10627],_mm256_xor_si256(c2[6754],_mm256_xor_si256(c2[789],_mm256_xor_si256(c2[1141],_mm256_xor_si256(c2[2196],_mm256_xor_si256(c2[7125],_mm256_xor_si256(c2[2914],_mm256_xor_si256(c2[3266],_mm256_xor_si256(c2[9956],_mm256_xor_si256(c2[7494],_mm256_xor_si256(c2[10320],_mm256_xor_si256(c2[1521],_mm256_xor_si256(c2[822],_mm256_xor_si256(c2[8212],_mm256_xor_si256(c2[2597],_mm256_xor_si256(c2[5767],_mm256_xor_si256(c2[6465],_mm256_xor_si256(c2[8947],_mm256_xor_si256(c2[9299],_mm256_xor_si256(c2[4375],_mm256_xor_si256(c2[10708],_mm256_xor_si256(c2[1217],_mm256_xor_si256(c2[1569],_mm256_xor_si256(c2[2275],_mm256_xor_si256(c2[2630],_mm256_xor_si256(c2[4405],_mm256_xor_si256(c2[4757],_mm256_xor_si256(c2[9680],_mm256_xor_si256(c2[7572],_mm256_xor_si256(c2[10407],_mm256_xor_si256(c2[10759],_mm256_xor_si256(c2[1957],_mm256_xor_si256(c2[7585],_mm256_xor_si256(c2[2674],_mm256_xor_si256(c2[3026],_mm256_xor_si256(c2[4790],_mm256_xor_si256(c2[9360],_mm256_xor_si256(c2[4453],_mm256_xor_si256(c2[225],_mm256_xor_si256(c2[6560],_mm256_xor_si256(c2[592],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[1302],_mm256_xor_si256(c2[241],_mm256_xor_si256(c2[7650],_mm256_xor_si256(c2[8002],_mm256_xor_si256(c2[4838],_mm256_xor_si256(c2[5537],_mm256_xor_si256(c2[9430],_mm256_xor_si256(c2[7313],_mm256_xor_si256(c2[4148],_mm256_xor_si256(c2[10151],_mm256_xor_si256(c2[10503],_mm256_xor_si256(c2[4512],_mm256_xor_si256(c2[6977],_mm256_xor_si256(c2[659],_mm256_xor_si256(c2[1011],_mm256_xor_si256(c2[10865],_mm256_xor_si256(c2[9457],_mm256_xor_si256(c2[4897],_mm256_xor_si256(c2[5249],_mm256_xor_si256(c2[7365],_mm256_xor_si256(c2[5606],_mm256_xor_si256(c2[9125],_mm256_xor_si256(c2[10546],_mm256_xor_si256(c2[10898],_mm256_xor_si256(c2[9842],c2[4210])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 14
d2[112]=_mm256_xor_si256(c2[4934],_mm256_xor_si256(c2[8289],_mm256_xor_si256(c2[5174],_mm256_xor_si256(c2[11171],_mm256_xor_si256(c2[5904],c2[2103])))));
//row: 15
d2[120]=_mm256_xor_si256(c2[4933],_mm256_xor_si256(c2[7749],_mm256_xor_si256(c2[10560],_mm256_xor_si256(c2[4225],_mm256_xor_si256(c2[4577],_mm256_xor_si256(c2[2817],_mm256_xor_si256(c2[8823],_mm256_xor_si256(c2[1073],_mm256_xor_si256(c2[4240],_mm256_xor_si256(c2[4592],_mm256_xor_si256(c2[19],_mm256_xor_si256(c2[7780],_mm256_xor_si256(c2[1093],_mm256_xor_si256(c2[4611],_mm256_xor_si256(c2[6738],_mm256_xor_si256(c2[3217],_mm256_xor_si256(c2[2512],_mm256_xor_si256(c2[2864],_mm256_xor_si256(c2[5697],_mm256_xor_si256(c2[6759],_mm256_xor_si256(c2[2534],_mm256_xor_si256(c2[2886],_mm256_xor_si256(c2[8528],_mm256_xor_si256(c2[9591],_mm256_xor_si256(c2[3249],_mm256_xor_si256(c2[10661],_mm256_xor_si256(c2[6080],_mm256_xor_si256(c2[3266],_mm256_xor_si256(c2[3618],_mm256_xor_si256(c2[6452],_mm256_xor_si256(c2[8916],_mm256_xor_si256(c2[7857],_mm256_xor_si256(c2[8209],_mm256_xor_si256(c2[9984],_mm256_xor_si256(c2[1891],_mm256_xor_si256(c2[2245],_mm256_xor_si256(c2[2597],_mm256_xor_si256(c2[5431],_mm256_xor_si256(c2[499],_mm256_xor_si256(c2[6832],_mm256_xor_si256(c2[8964],_mm256_xor_si256(c2[9670],_mm256_xor_si256(c2[9665],_mm256_xor_si256(c2[10017],_mm256_xor_si256(c2[514],_mm256_xor_si256(c2[881],_mm256_xor_si256(c2[5812],_mm256_xor_si256(c2[3344],_mm256_xor_si256(c2[3696],_mm256_xor_si256(c2[6883],_mm256_xor_si256(c2[9344],_mm256_xor_si256(c2[3365],_mm256_xor_si256(c2[3717],_mm256_xor_si256(c2[10421],_mm256_xor_si256(c2[914],_mm256_xor_si256(c2[5140],_mm256_xor_si256(c2[5492],_mm256_xor_si256(c2[11121],_mm256_xor_si256(c2[577],_mm256_xor_si256(c2[7620],_mm256_xor_si256(c2[2340],_mm256_xor_si256(c2[2692],_mm256_xor_si256(c2[8339],_mm256_xor_si256(c2[8689],_mm256_xor_si256(c2[7636],_mm256_xor_si256(c2[4134],_mm256_xor_si256(c2[962],_mm256_xor_si256(c2[1317],_mm256_xor_si256(c2[1669],_mm256_xor_si256(c2[5554],_mm256_xor_si256(c2[3445],_mm256_xor_si256(c2[11191],_mm256_xor_si256(c2[272],_mm256_xor_si256(c2[6627],_mm256_xor_si256(c2[644],_mm256_xor_si256(c2[2757],_mm256_xor_si256(c2[3109],_mm256_xor_si256(c2[4162],_mm256_xor_si256(c2[8406],_mm256_xor_si256(c2[6997],_mm256_xor_si256(c2[5589],_mm256_xor_si256(c2[1381],_mm256_xor_si256(c2[3489],_mm256_xor_si256(c2[1378],_mm256_xor_si256(c2[1730],_mm256_xor_si256(c2[7030],_mm256_xor_si256(c2[5974],_mm256_xor_si256(c2[11253],c2[342]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 16
d2[128]=_mm256_xor_si256(c2[7044],_mm256_xor_si256(c2[9860],_mm256_xor_si256(c2[1408],_mm256_xor_si256(c2[6688],_mm256_xor_si256(c2[10934],_mm256_xor_si256(c2[3184],_mm256_xor_si256(c2[6711],_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[9891],_mm256_xor_si256(c2[3204],_mm256_xor_si256(c2[6722],_mm256_xor_si256(c2[8849],_mm256_xor_si256(c2[5328],_mm256_xor_si256(c2[4983],_mm256_xor_si256(c2[6033],_mm256_xor_si256(c2[7808],_mm256_xor_si256(c2[8870],_mm256_xor_si256(c2[4997],_mm256_xor_si256(c2[10647],_mm256_xor_si256(c2[439],_mm256_xor_si256(c2[5360],_mm256_xor_si256(c2[1509],_mm256_xor_si256(c2[8199],_mm256_xor_si256(c2[5729],_mm256_xor_si256(c2[8563],_mm256_xor_si256(c2[11027],_mm256_xor_si256(c2[10320],_mm256_xor_si256(c2[832],_mm256_xor_si256(c2[4002],_mm256_xor_si256(c2[4708],_mm256_xor_si256(c2[7542],_mm256_xor_si256(c2[2610],_mm256_xor_si256(c2[8951],_mm256_xor_si256(c2[11075],_mm256_xor_si256(c2[518],_mm256_xor_si256(c2[865],_mm256_xor_si256(c2[2992],_mm256_xor_si256(c2[7923],_mm256_xor_si256(c2[5815],_mm256_xor_si256(c2[6161],_mm256_xor_si256(c2[8994],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[5828],_mm256_xor_si256(c2[1269],_mm256_xor_si256(c2[3025],_mm256_xor_si256(c2[7603],_mm256_xor_si256(c2[2688],_mm256_xor_si256(c2[9731],_mm256_xor_si256(c2[4803],_mm256_xor_si256(c2[10450],_mm256_xor_si256(c2[10800],_mm256_xor_si256(c2[9747],_mm256_xor_si256(c2[6245],_mm256_xor_si256(c2[3073],_mm256_xor_si256(c2[3780],_mm256_xor_si256(c2[7665],_mm256_xor_si256(c2[5556],_mm256_xor_si256(c2[2391],_mm256_xor_si256(c2[8738],_mm256_xor_si256(c2[2755],_mm256_xor_si256(c2[5220],_mm256_xor_si256(c2[10517],_mm256_xor_si256(c2[9108],_mm256_xor_si256(c2[7700],_mm256_xor_si256(c2[3492],_mm256_xor_si256(c2[5600],_mm256_xor_si256(c2[3841],_mm256_xor_si256(c2[7009],_mm256_xor_si256(c2[9141],_mm256_xor_si256(c2[8085],c2[2453]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 17
d2[136]=_mm256_xor_si256(c2[2464],_mm256_xor_si256(c2[1637],_mm256_xor_si256(c2[9761],_mm256_xor_si256(c2[624],c2[5972]))));
//row: 18
d2[144]=_mm256_xor_si256(c2[3537],_mm256_xor_si256(c2[3367],_mm256_xor_si256(c2[3024],_mm256_xor_si256(c2[9796],c2[6996]))));
//row: 19
d2[152]=_mm256_xor_si256(c2[9857],_mm256_xor_si256(c2[3186],_mm256_xor_si256(c2[2930],_mm256_xor_si256(c2[11043],c2[167]))));
//row: 20
d2[160]=_mm256_xor_si256(c2[9156],_mm256_xor_si256(c2[709],_mm256_xor_si256(c2[3520],_mm256_xor_si256(c2[8800],_mm256_xor_si256(c2[8100],_mm256_xor_si256(c2[1783],_mm256_xor_si256(c2[5296],_mm256_xor_si256(c2[8823],_mm256_xor_si256(c2[740],_mm256_xor_si256(c2[5316],_mm256_xor_si256(c2[8834],_mm256_xor_si256(c2[10961],_mm256_xor_si256(c2[7440],_mm256_xor_si256(c2[7095],_mm256_xor_si256(c2[9205],_mm256_xor_si256(c2[9920],_mm256_xor_si256(c2[10982],_mm256_xor_si256(c2[7109],_mm256_xor_si256(c2[1488],_mm256_xor_si256(c2[2551],_mm256_xor_si256(c2[7472],_mm256_xor_si256(c2[3621],_mm256_xor_si256(c2[10311],_mm256_xor_si256(c2[7841],_mm256_xor_si256(c2[10675],_mm256_xor_si256(c2[1876],_mm256_xor_si256(c2[1169],_mm256_xor_si256(c2[2944],_mm256_xor_si256(c2[6114],_mm256_xor_si256(c2[6820],_mm256_xor_si256(c2[9654],_mm256_xor_si256(c2[4722],_mm256_xor_si256(c2[11063],_mm256_xor_si256(c2[8950],_mm256_xor_si256(c2[1924],_mm256_xor_si256(c2[2630],_mm256_xor_si256(c2[2977],_mm256_xor_si256(c2[5104],_mm256_xor_si256(c2[10035],_mm256_xor_si256(c2[7927],_mm256_xor_si256(c2[5457],_mm256_xor_si256(c2[11106],_mm256_xor_si256(c2[2304],_mm256_xor_si256(c2[7940],_mm256_xor_si256(c2[3381],_mm256_xor_si256(c2[5137],_mm256_xor_si256(c2[9715],_mm256_xor_si256(c2[4800],_mm256_xor_si256(c2[580],_mm256_xor_si256(c2[6915],_mm256_xor_si256(c2[1299],_mm256_xor_si256(c2[1649],_mm256_xor_si256(c2[596],_mm256_xor_si256(c2[8357],_mm256_xor_si256(c2[5185],_mm256_xor_si256(c2[5892],_mm256_xor_si256(c2[9777],_mm256_xor_si256(c2[7668],_mm256_xor_si256(c2[4503],_mm256_xor_si256(c2[10850],_mm256_xor_si256(c2[4867],_mm256_xor_si256(c2[7332],_mm256_xor_si256(c2[1366],_mm256_xor_si256(c2[11220],_mm256_xor_si256(c2[9812],_mm256_xor_si256(c2[5604],_mm256_xor_si256(c2[7712],_mm256_xor_si256(c2[5953],_mm256_xor_si256(c2[11253],_mm256_xor_si256(c2[10197],c2[4565]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 21
d2[168]=_mm256_xor_si256(c2[8823],_mm256_xor_si256(c2[8883],_mm256_xor_si256(c2[4835],_mm256_xor_si256(c2[1380],c2[4213]))));
//row: 22
d2[176]=_mm256_xor_si256(c2[2],_mm256_xor_si256(c2[5124],_mm256_xor_si256(c2[10069],c2[10836])));
//row: 23
d2[184]=_mm256_xor_si256(c2[9876],_mm256_xor_si256(c2[6724],_mm256_xor_si256(c2[3685],c2[8740])));
//row: 24
d2[192]=_mm256_xor_si256(c2[8454],_mm256_xor_si256(c2[7],_mm256_xor_si256(c2[2818],_mm256_xor_si256(c2[8098],_mm256_xor_si256(c2[5635],_mm256_xor_si256(c2[1073],_mm256_xor_si256(c2[4594],_mm256_xor_si256(c2[8113],_mm256_xor_si256(c2[38],_mm256_xor_si256(c2[4614],_mm256_xor_si256(c2[8132],_mm256_xor_si256(c2[10259],_mm256_xor_si256(c2[6738],_mm256_xor_si256(c2[6385],_mm256_xor_si256(c2[7794],_mm256_xor_si256(c2[9218],_mm256_xor_si256(c2[10272],_mm256_xor_si256(c2[6407],_mm256_xor_si256(c2[4295],_mm256_xor_si256(c2[786],_mm256_xor_si256(c2[1841],_mm256_xor_si256(c2[6770],_mm256_xor_si256(c2[2919],_mm256_xor_si256(c2[9601],_mm256_xor_si256(c2[7139],_mm256_xor_si256(c2[9973],_mm256_xor_si256(c2[1174],_mm256_xor_si256(c2[467],_mm256_xor_si256(c2[2242],_mm256_xor_si256(c2[5412],_mm256_xor_si256(c2[6118],_mm256_xor_si256(c2[8944],_mm256_xor_si256(c2[4020],_mm256_xor_si256(c2[10353],_mm256_xor_si256(c2[1222],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[2275],_mm256_xor_si256(c2[4402],_mm256_xor_si256(c2[9333],_mm256_xor_si256(c2[7217],_mm256_xor_si256(c2[7219],_mm256_xor_si256(c2[10404],_mm256_xor_si256(c2[1602],_mm256_xor_si256(c2[7238],_mm256_xor_si256(c2[2679],_mm256_xor_si256(c2[4435],_mm256_xor_si256(c2[9013],_mm256_xor_si256(c2[4098],_mm256_xor_si256(c2[11141],_mm256_xor_si256(c2[6213],_mm256_xor_si256(c2[597],_mm256_xor_si256(c2[947],_mm256_xor_si256(c2[11157],_mm256_xor_si256(c2[7655],_mm256_xor_si256(c2[4483],_mm256_xor_si256(c2[5190],_mm256_xor_si256(c2[9075],_mm256_xor_si256(c2[6966],_mm256_xor_si256(c2[3793],_mm256_xor_si256(c2[10148],_mm256_xor_si256(c2[4165],_mm256_xor_si256(c2[6630],_mm256_xor_si256(c2[656],_mm256_xor_si256(c2[10518],_mm256_xor_si256(c2[9110],_mm256_xor_si256(c2[4902],_mm256_xor_si256(c2[7010],_mm256_xor_si256(c2[5251],_mm256_xor_si256(c2[10551],_mm256_xor_si256(c2[9495],c2[3863]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 25
d2[200]=_mm256_xor_si256(c2[8112],_mm256_xor_si256(c2[2916],_mm256_xor_si256(c2[7155],c2[7973])));
//row: 26
d2[208]=_mm256_xor_si256(c2[1062],_mm256_xor_si256(c2[6727],_mm256_xor_si256(c2[8166],c2[10449])));
//row: 27
d2[216]=_mm256_xor_si256(c2[8816],_mm256_xor_si256(c2[2915],c2[838]));
//row: 28
d2[224]=_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[1829],_mm256_xor_si256(c2[7701],c2[11249])));
//row: 29
d2[232]=_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[3168],_mm256_xor_si256(c2[5987],_mm256_xor_si256(c2[10915],_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[4242],_mm256_xor_si256(c2[7763],_mm256_xor_si256(c2[10930],_mm256_xor_si256(c2[19],_mm256_xor_si256(c2[7762],_mm256_xor_si256(c2[3207],_mm256_xor_si256(c2[7783],_mm256_xor_si256(c2[38],_mm256_xor_si256(c2[2165],_mm256_xor_si256(c2[9907],_mm256_xor_si256(c2[9202],_mm256_xor_si256(c2[9554],_mm256_xor_si256(c2[1124],_mm256_xor_si256(c2[2178],_mm256_xor_si256(c2[9216],_mm256_xor_si256(c2[9568],_mm256_xor_si256(c2[3955],_mm256_xor_si256(c2[5010],_mm256_xor_si256(c2[9939],_mm256_xor_si256(c2[6080],_mm256_xor_si256(c2[1507],_mm256_xor_si256(c2[9956],_mm256_xor_si256(c2[10308],_mm256_xor_si256(c2[1879],_mm256_xor_si256(c2[4343],_mm256_xor_si256(c2[3284],_mm256_xor_si256(c2[3636],_mm256_xor_si256(c2[5411],_mm256_xor_si256(c2[8581],_mm256_xor_si256(c2[8935],_mm256_xor_si256(c2[9287],_mm256_xor_si256(c2[850],_mm256_xor_si256(c2[7189],_mm256_xor_si256(c2[2259],_mm256_xor_si256(c2[4391],_mm256_xor_si256(c2[5089],_mm256_xor_si256(c2[5092],_mm256_xor_si256(c2[5444],_mm256_xor_si256(c2[7571],_mm256_xor_si256(c2[1239],_mm256_xor_si256(c2[10034],_mm256_xor_si256(c2[10386],_mm256_xor_si256(c2[2310],_mm256_xor_si256(c2[4771],_mm256_xor_si256(c2[10055],_mm256_xor_si256(c2[10407],_mm256_xor_si256(c2[5840],_mm256_xor_si256(c2[7604],_mm256_xor_si256(c2[567],_mm256_xor_si256(c2[919],_mm256_xor_si256(c2[7267],_mm256_xor_si256(c2[3047],_mm256_xor_si256(c2[9030],_mm256_xor_si256(c2[9382],_mm256_xor_si256(c2[4455],_mm256_xor_si256(c2[3766],_mm256_xor_si256(c2[4116],_mm256_xor_si256(c2[3063],_mm256_xor_si256(c2[10816],_mm256_xor_si256(c2[7652],_mm256_xor_si256(c2[8007],_mm256_xor_si256(c2[8359],_mm256_xor_si256(c2[981],_mm256_xor_si256(c2[10135],_mm256_xor_si256(c2[6610],_mm256_xor_si256(c2[6962],_mm256_xor_si256(c2[2054],_mm256_xor_si256(c2[7334],_mm256_xor_si256(c2[9447],_mm256_xor_si256(c2[9799],_mm256_xor_si256(c2[7330],_mm256_xor_si256(c2[3825],_mm256_xor_si256(c2[2416],_mm256_xor_si256(c2[1008],_mm256_xor_si256(c2[8071],_mm256_xor_si256(c2[10179],_mm256_xor_si256(c2[8068],_mm256_xor_si256(c2[8420],_mm256_xor_si256(c2[2449],_mm256_xor_si256(c2[1393],_mm256_xor_si256(c2[6672],c2[7024]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 30
d2[240]=_mm256_xor_si256(c2[1408],_mm256_xor_si256(c2[4224],_mm256_xor_si256(c2[6691],_mm256_xor_si256(c2[7043],_mm256_xor_si256(c2[708],_mm256_xor_si256(c2[1060],_mm256_xor_si256(c2[8454],_mm256_xor_si256(c2[5298],_mm256_xor_si256(c2[8467],_mm256_xor_si256(c2[8819],_mm256_xor_si256(c2[723],_mm256_xor_si256(c2[1075],_mm256_xor_si256(c2[4263],_mm256_xor_si256(c2[8839],_mm256_xor_si256(c2[742],_mm256_xor_si256(c2[1094],_mm256_xor_si256(c2[3221],_mm256_xor_si256(c2[10963],_mm256_xor_si256(c2[10258],_mm256_xor_si256(c2[10610],_mm256_xor_si256(c2[2180],_mm256_xor_si256(c2[2882],_mm256_xor_si256(c2[3234],_mm256_xor_si256(c2[10272],_mm256_xor_si256(c2[10624],_mm256_xor_si256(c2[5011],_mm256_xor_si256(c2[6066],_mm256_xor_si256(c2[10643],_mm256_xor_si256(c2[10995],_mm256_xor_si256(c2[7136],_mm256_xor_si256(c2[2211],_mm256_xor_si256(c2[2563],_mm256_xor_si256(c2[11012],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[2935],_mm256_xor_si256(c2[5047],_mm256_xor_si256(c2[5399],_mm256_xor_si256(c2[4340],_mm256_xor_si256(c2[4692],_mm256_xor_si256(c2[6467],_mm256_xor_si256(c2[9285],_mm256_xor_si256(c2[9637],_mm256_xor_si256(c2[9991],_mm256_xor_si256(c2[10343],_mm256_xor_si256(c2[1906],_mm256_xor_si256(c2[8245],_mm256_xor_si256(c2[2963],_mm256_xor_si256(c2[3315],_mm256_xor_si256(c2[5447],_mm256_xor_si256(c2[5793],_mm256_xor_si256(c2[6145],_mm256_xor_si256(c2[6148],_mm256_xor_si256(c2[6500],_mm256_xor_si256(c2[3330],_mm256_xor_si256(c2[8627],_mm256_xor_si256(c2[2295],_mm256_xor_si256(c2[11090],_mm256_xor_si256(c2[179],_mm256_xor_si256(c2[3366],_mm256_xor_si256(c2[5827],_mm256_xor_si256(c2[11111],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[6896],_mm256_xor_si256(c2[8308],_mm256_xor_si256(c2[8660],_mm256_xor_si256(c2[1623],_mm256_xor_si256(c2[1975],_mm256_xor_si256(c2[8659],_mm256_xor_si256(c2[8323],_mm256_xor_si256(c2[3751],_mm256_xor_si256(c2[4103],_mm256_xor_si256(c2[10086],_mm256_xor_si256(c2[10438],_mm256_xor_si256(c2[4822],_mm256_xor_si256(c2[5172],_mm256_xor_si256(c2[3767],_mm256_xor_si256(c2[4119],_mm256_xor_si256(c2[609],_mm256_xor_si256(c2[8708],_mm256_xor_si256(c2[9063],_mm256_xor_si256(c2[9415],_mm256_xor_si256(c2[2037],_mm256_xor_si256(c2[10839],_mm256_xor_si256(c2[11191],_mm256_xor_si256(c2[7666],_mm256_xor_si256(c2[8018],_mm256_xor_si256(c2[3110],_mm256_xor_si256(c2[8038],_mm256_xor_si256(c2[8390],_mm256_xor_si256(c2[10503],_mm256_xor_si256(c2[10855],_mm256_xor_si256(c2[4881],_mm256_xor_si256(c2[3472],_mm256_xor_si256(c2[1712],_mm256_xor_si256(c2[2064],_mm256_xor_si256(c2[9127],_mm256_xor_si256(c2[10883],_mm256_xor_si256(c2[11235],_mm256_xor_si256(c2[9124],_mm256_xor_si256(c2[9476],_mm256_xor_si256(c2[3505],_mm256_xor_si256(c2[2449],_mm256_xor_si256(c2[7728],c2[8080])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 31
d2[248]=_mm256_xor_si256(c2[2117],_mm256_xor_si256(c2[8449],_mm256_xor_si256(c2[4933],_mm256_xor_si256(c2[2],_mm256_xor_si256(c2[7744],_mm256_xor_si256(c2[2821],_mm256_xor_si256(c2[1761],_mm256_xor_si256(c2[7749],_mm256_xor_si256(c2[8101],_mm256_xor_si256(c2[6007],_mm256_xor_si256(c2[1076],_mm256_xor_si256(c2[9520],_mm256_xor_si256(c2[4597],_mm256_xor_si256(c2[1776],_mm256_xor_si256(c2[7764],_mm256_xor_si256(c2[8116],_mm256_xor_si256(c2[10930],_mm256_xor_si256(c2[4964],_mm256_xor_si256(c2[33],_mm256_xor_si256(c2[9540],_mm256_xor_si256(c2[4609],_mm256_xor_si256(c2[1795],_mm256_xor_si256(c2[8135],_mm256_xor_si256(c2[3922],_mm256_xor_si256(c2[10262],_mm256_xor_si256(c2[401],_mm256_xor_si256(c2[6741],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[6036],_mm256_xor_si256(c2[6388],_mm256_xor_si256(c2[2881],_mm256_xor_si256(c2[9221],_mm256_xor_si256(c2[3943],_mm256_xor_si256(c2[10275],_mm256_xor_si256(c2[70],_mm256_xor_si256(c2[6050],_mm256_xor_si256(c2[6402],_mm256_xor_si256(c2[5712],_mm256_xor_si256(c2[789],_mm256_xor_si256(c2[6775],_mm256_xor_si256(c2[1844],_mm256_xor_si256(c2[433],_mm256_xor_si256(c2[6773],_mm256_xor_si256(c2[7845],_mm256_xor_si256(c2[2914],_mm256_xor_si256(c2[3264],_mm256_xor_si256(c2[9604],_mm256_xor_si256(c2[802],_mm256_xor_si256(c2[6790],_mm256_xor_si256(c2[7142],_mm256_xor_si256(c2[3636],_mm256_xor_si256(c2[9968],_mm256_xor_si256(c2[6100],_mm256_xor_si256(c2[1169],_mm256_xor_si256(c2[5393],_mm256_xor_si256(c2[118],_mm256_xor_si256(c2[470],_mm256_xor_si256(c2[6101],_mm256_xor_si256(c2[7168],_mm256_xor_si256(c2[2245],_mm256_xor_si256(c2[10338],_mm256_xor_si256(c2[5415],_mm256_xor_si256(c2[11044],_mm256_xor_si256(c2[5761],_mm256_xor_si256(c2[6113],_mm256_xor_si256(c2[2615],_mm256_xor_si256(c2[8947],_mm256_xor_si256(c2[8946],_mm256_xor_si256(c2[4023],_mm256_xor_si256(c2[4016],_mm256_xor_si256(c2[10356],_mm256_xor_si256(c2[6148],_mm256_xor_si256(c2[1217],_mm256_xor_si256(c2[6854],_mm256_xor_si256(c2[1923],_mm256_xor_si256(c2[7201],_mm256_xor_si256(c2[1926],_mm256_xor_si256(c2[2278],_mm256_xor_si256(c2[9328],_mm256_xor_si256(c2[4405],_mm256_xor_si256(c2[2996],_mm256_xor_si256(c2[9328],_mm256_xor_si256(c2[880],_mm256_xor_si256(c2[6868],_mm256_xor_si256(c2[7220],_mm256_xor_si256(c2[4067],_mm256_xor_si256(c2[10407],_mm256_xor_si256(c2[6528],_mm256_xor_si256(c2[1605],_mm256_xor_si256(c2[901],_mm256_xor_si256(c2[6881],_mm256_xor_si256(c2[7233],_mm256_xor_si256(c2[7605],_mm256_xor_si256(c2[2674],_mm256_xor_si256(c2[9361],_mm256_xor_si256(c2[4438],_mm256_xor_si256(c2[2676],_mm256_xor_si256(c2[8656],_mm256_xor_si256(c2[9008],_mm256_xor_si256(c2[9024],_mm256_xor_si256(c2[4101],_mm256_xor_si256(c2[4804],_mm256_xor_si256(c2[11136],_mm256_xor_si256(c2[11139],_mm256_xor_si256(c2[5856],_mm256_xor_si256(c2[6208],_mm256_xor_si256(c2[5523],_mm256_xor_si256(c2[592],_mm256_xor_si256(c2[5873],_mm256_xor_si256(c2[950],_mm256_xor_si256(c2[4820],_mm256_xor_si256(c2[11152],_mm256_xor_si256(c2[1318],_mm256_xor_si256(c2[7650],_mm256_xor_si256(c2[9409],_mm256_xor_si256(c2[4486],_mm256_xor_si256(c2[10116],_mm256_xor_si256(c2[4833],_mm256_xor_si256(c2[5185],_mm256_xor_si256(c2[2738],_mm256_xor_si256(c2[9078],_mm256_xor_si256(c2[629],_mm256_xor_si256(c2[6961],_mm256_xor_si256(c2[8727],_mm256_xor_si256(c2[3444],_mm256_xor_si256(c2[3796],_mm256_xor_si256(c2[3811],_mm256_xor_si256(c2[10151],_mm256_xor_si256(c2[9091],_mm256_xor_si256(c2[4160],_mm256_xor_si256(c2[293],_mm256_xor_si256(c2[6273],_mm256_xor_si256(c2[6625],_mm256_xor_si256(c2[5590],_mm256_xor_si256(c2[659],_mm256_xor_si256(c2[4181],_mm256_xor_si256(c2[10513],_mm256_xor_si256(c2[2773],_mm256_xor_si256(c2[9105],_mm256_xor_si256(c2[9828],_mm256_xor_si256(c2[4897],_mm256_xor_si256(c2[673],_mm256_xor_si256(c2[7013],_mm256_xor_si256(c2[10177],_mm256_xor_si256(c2[4902],_mm256_xor_si256(c2[5254],_mm256_xor_si256(c2[4214],_mm256_xor_si256(c2[10546],_mm256_xor_si256(c2[3158],_mm256_xor_si256(c2[9490],_mm256_xor_si256(c2[8789],_mm256_xor_si256(c2[3506],c2[3858]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 32
d2[256]=_mm256_xor_si256(c2[7043],_mm256_xor_si256(c2[9859],_mm256_xor_si256(c2[1063],_mm256_xor_si256(c2[1415],_mm256_xor_si256(c2[6343],_mm256_xor_si256(c2[6695],_mm256_xor_si256(c2[10214],_mm256_xor_si256(c2[10933],_mm256_xor_si256(c2[2839],_mm256_xor_si256(c2[3191],_mm256_xor_si256(c2[6358],_mm256_xor_si256(c2[6710],_mm256_xor_si256(c2[9890],_mm256_xor_si256(c2[3203],_mm256_xor_si256(c2[6369],_mm256_xor_si256(c2[6721],_mm256_xor_si256(c2[8848],_mm256_xor_si256(c2[5335],_mm256_xor_si256(c2[4630],_mm256_xor_si256(c2[4982],_mm256_xor_si256(c2[7815],_mm256_xor_si256(c2[8517],_mm256_xor_si256(c2[8869],_mm256_xor_si256(c2[4644],_mm256_xor_si256(c2[4996],_mm256_xor_si256(c2[10646],_mm256_xor_si256(c2[438],_mm256_xor_si256(c2[5015],_mm256_xor_si256(c2[5367],_mm256_xor_si256(c2[1508],_mm256_xor_si256(c2[7846],_mm256_xor_si256(c2[8198],_mm256_xor_si256(c2[5376],_mm256_xor_si256(c2[5728],_mm256_xor_si256(c2[8562],_mm256_xor_si256(c2[10674],_mm256_xor_si256(c2[11026],_mm256_xor_si256(c2[9975],_mm256_xor_si256(c2[10327],_mm256_xor_si256(c2[839],_mm256_xor_si256(c2[3649],_mm256_xor_si256(c2[4001],_mm256_xor_si256(c2[4355],_mm256_xor_si256(c2[4707],_mm256_xor_si256(c2[7541],_mm256_xor_si256(c2[2609],_mm256_xor_si256(c2[8598],_mm256_xor_si256(c2[8950],_mm256_xor_si256(c2[11074],_mm256_xor_si256(c2[165],_mm256_xor_si256(c2[517],_mm256_xor_si256(c2[512],_mm256_xor_si256(c2[864],_mm256_xor_si256(c2[2999],_mm256_xor_si256(c2[7922],_mm256_xor_si256(c2[5462],_mm256_xor_si256(c2[5814],_mm256_xor_si256(c2[8993],_mm256_xor_si256(c2[199],_mm256_xor_si256(c2[5475],_mm256_xor_si256(c2[5827],_mm256_xor_si256(c2[5827],_mm256_xor_si256(c2[1268],_mm256_xor_si256(c2[2672],_mm256_xor_si256(c2[3024],_mm256_xor_si256(c2[7250],_mm256_xor_si256(c2[7602],_mm256_xor_si256(c2[2695],_mm256_xor_si256(c2[9378],_mm256_xor_si256(c2[9730],_mm256_xor_si256(c2[4450],_mm256_xor_si256(c2[4802],_mm256_xor_si256(c2[2694],_mm256_xor_si256(c2[10449],_mm256_xor_si256(c2[10807],_mm256_xor_si256(c2[9394],_mm256_xor_si256(c2[9746],_mm256_xor_si256(c2[6244],_mm256_xor_si256(c2[3072],_mm256_xor_si256(c2[3427],_mm256_xor_si256(c2[3779],_mm256_xor_si256(c2[7664],_mm256_xor_si256(c2[5203],_mm256_xor_si256(c2[5555],_mm256_xor_si256(c2[2038],_mm256_xor_si256(c2[2390],_mm256_xor_si256(c2[8737],_mm256_xor_si256(c2[2402],_mm256_xor_si256(c2[2754],_mm256_xor_si256(c2[4867],_mm256_xor_si256(c2[5219],_mm256_xor_si256(c2[10516],_mm256_xor_si256(c2[9107],_mm256_xor_si256(c2[7347],_mm256_xor_si256(c2[7699],_mm256_xor_si256(c2[3491],_mm256_xor_si256(c2[5255],_mm256_xor_si256(c2[5607],_mm256_xor_si256(c2[3488],_mm256_xor_si256(c2[3840],_mm256_xor_si256(c2[9140],_mm256_xor_si256(c2[8084],_mm256_xor_si256(c2[2100],c2[2452])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 33
d2[264]=_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[9541],_mm256_xor_si256(c2[3345],c2[7030])));
//row: 34
d2[272]=_mm256_xor_si256(c2[10915],_mm256_xor_si256(c2[2581],_mm256_xor_si256(c2[1653],c2[11188])));
//row: 35
d2[280]=_mm256_xor_si256(c2[355],_mm256_xor_si256(c2[3171],_mm256_xor_si256(c2[5990],_mm256_xor_si256(c2[7],_mm256_xor_si256(c2[4245],_mm256_xor_si256(c2[7766],_mm256_xor_si256(c2[22],_mm256_xor_si256(c2[373],_mm256_xor_si256(c2[3202],_mm256_xor_si256(c2[7778],_mm256_xor_si256(c2[33],_mm256_xor_si256(c2[2160],_mm256_xor_si256(c2[9910],_mm256_xor_si256(c2[9557],_mm256_xor_si256(c2[1127],_mm256_xor_si256(c2[2181],_mm256_xor_si256(c2[9571],_mm256_xor_si256(c2[3958],_mm256_xor_si256(c2[5013],_mm256_xor_si256(c2[9942],_mm256_xor_si256(c2[6083],_mm256_xor_si256(c2[1510],_mm256_xor_si256(c2[10311],_mm256_xor_si256(c2[1862],_mm256_xor_si256(c2[1874],_mm256_xor_si256(c2[4338],_mm256_xor_si256(c2[3639],_mm256_xor_si256(c2[5414],_mm256_xor_si256(c2[8576],_mm256_xor_si256(c2[9282],_mm256_xor_si256(c2[853],_mm256_xor_si256(c2[7184],_mm256_xor_si256(c2[2262],_mm256_xor_si256(c2[4386],_mm256_xor_si256(c2[5092],_mm256_xor_si256(c2[5447],_mm256_xor_si256(c2[7574],_mm256_xor_si256(c2[1234],_mm256_xor_si256(c2[10389],_mm256_xor_si256(c2[2305],_mm256_xor_si256(c2[4774],_mm256_xor_si256(c2[10402],_mm256_xor_si256(c2[5478],_mm256_xor_si256(c2[5843],_mm256_xor_si256(c2[7607],_mm256_xor_si256(c2[914],_mm256_xor_si256(c2[7270],_mm256_xor_si256(c2[3042],_mm256_xor_si256(c2[9377],_mm256_xor_si256(c2[3761],_mm256_xor_si256(c2[4119],_mm256_xor_si256(c2[3058],_mm256_xor_si256(c2[10819],_mm256_xor_si256(c2[7655],_mm256_xor_si256(c2[8354],_mm256_xor_si256(c2[976],_mm256_xor_si256(c2[10130],_mm256_xor_si256(c2[6965],_mm256_xor_si256(c2[2049],_mm256_xor_si256(c2[7329],_mm256_xor_si256(c2[9794],_mm256_xor_si256(c2[3828],_mm256_xor_si256(c2[2419],_mm256_xor_si256(c2[1011],_mm256_xor_si256(c2[8066],_mm256_xor_si256(c2[10182],_mm256_xor_si256(c2[8423],_mm256_xor_si256(c2[2452],_mm256_xor_si256(c2[1396],c2[7027])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 36
d2[288]=_mm256_xor_si256(c2[1761],_mm256_xor_si256(c2[3395],_mm256_xor_si256(c2[6929],c2[8739])));
//row: 37
d2[296]=_mm256_xor_si256(c2[7043],_mm256_xor_si256(c2[7395],_mm256_xor_si256(c2[10211],_mm256_xor_si256(c2[1767],_mm256_xor_si256(c2[7047],_mm256_xor_si256(c2[10933],_mm256_xor_si256(c2[22],_mm256_xor_si256(c2[3543],_mm256_xor_si256(c2[7062],_mm256_xor_si256(c2[2134],_mm256_xor_si256(c2[9890],_mm256_xor_si256(c2[10242],_mm256_xor_si256(c2[3555],_mm256_xor_si256(c2[7073],_mm256_xor_si256(c2[8848],_mm256_xor_si256(c2[9200],_mm256_xor_si256(c2[5687],_mm256_xor_si256(c2[5334],_mm256_xor_si256(c2[8167],_mm256_xor_si256(c2[9221],_mm256_xor_si256(c2[5348],_mm256_xor_si256(c2[10646],_mm256_xor_si256(c2[10998],_mm256_xor_si256(c2[790],_mm256_xor_si256(c2[5719],_mm256_xor_si256(c2[1508],_mm256_xor_si256(c2[1860],_mm256_xor_si256(c2[8550],_mm256_xor_si256(c2[6080],_mm256_xor_si256(c2[8914],_mm256_xor_si256(c2[115],_mm256_xor_si256(c2[10679],_mm256_xor_si256(c2[1191],_mm256_xor_si256(c2[4353],_mm256_xor_si256(c2[5059],_mm256_xor_si256(c2[7541],_mm256_xor_si256(c2[7893],_mm256_xor_si256(c2[2961],_mm256_xor_si256(c2[9302],_mm256_xor_si256(c2[11074],_mm256_xor_si256(c2[163],_mm256_xor_si256(c2[869],_mm256_xor_si256(c2[1216],_mm256_xor_si256(c2[2999],_mm256_xor_si256(c2[3351],_mm256_xor_si256(c2[8274],_mm256_xor_si256(c2[6166],_mm256_xor_si256(c2[8993],_mm256_xor_si256(c2[9345],_mm256_xor_si256(c2[551],_mm256_xor_si256(c2[6179],_mm256_xor_si256(c2[1268],_mm256_xor_si256(c2[1620],_mm256_xor_si256(c2[3376],_mm256_xor_si256(c2[7954],_mm256_xor_si256(c2[10070],_mm256_xor_si256(c2[3047],_mm256_xor_si256(c2[10082],_mm256_xor_si256(c2[5154],_mm256_xor_si256(c2[10449],_mm256_xor_si256(c2[10801],_mm256_xor_si256(c2[11159],_mm256_xor_si256(c2[10098],_mm256_xor_si256(c2[6244],_mm256_xor_si256(c2[6596],_mm256_xor_si256(c2[3424],_mm256_xor_si256(c2[4131],_mm256_xor_si256(c2[8016],_mm256_xor_si256(c2[5907],_mm256_xor_si256(c2[2742],_mm256_xor_si256(c2[8737],_mm256_xor_si256(c2[9089],_mm256_xor_si256(c2[3106],_mm256_xor_si256(c2[5571],_mm256_xor_si256(c2[10516],_mm256_xor_si256(c2[10868],_mm256_xor_si256(c2[9459],_mm256_xor_si256(c2[8051],_mm256_xor_si256(c2[3491],_mm256_xor_si256(c2[3843],_mm256_xor_si256(c2[5959],_mm256_xor_si256(c2[4192],_mm256_xor_si256(c2[9140],_mm256_xor_si256(c2[9492],_mm256_xor_si256(c2[8436],c2[2804])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 38
d2[304]=_mm256_xor_si256(c2[2469],_mm256_xor_si256(c2[8244],_mm256_xor_si256(c2[10372],c2[1253])));
//row: 39
d2[312]=_mm256_xor_si256(c2[4597],_mm256_xor_si256(c2[3924],_mm256_xor_si256(c2[7508],c2[304])));
//row: 40
d2[320]=_mm256_xor_si256(c2[10212],_mm256_xor_si256(c2[3300],c2[7668]));
//row: 41
d2[328]=_mm256_xor_si256(c2[2485],_mm256_xor_si256(c2[4629],_mm256_xor_si256(c2[4020],c2[8388])));
//row: 42
d2[336]=_mm256_xor_si256(c2[1412],_mm256_xor_si256(c2[4228],_mm256_xor_si256(c2[6695],_mm256_xor_si256(c2[7047],_mm256_xor_si256(c2[704],_mm256_xor_si256(c2[1056],_mm256_xor_si256(c2[7396],_mm256_xor_si256(c2[5302],_mm256_xor_si256(c2[8471],_mm256_xor_si256(c2[8823],_mm256_xor_si256(c2[727],_mm256_xor_si256(c2[1079],_mm256_xor_si256(c2[4259],_mm256_xor_si256(c2[8835],_mm256_xor_si256(c2[738],_mm256_xor_si256(c2[1090],_mm256_xor_si256(c2[3217],_mm256_xor_si256(c2[10967],_mm256_xor_si256(c2[10262],_mm256_xor_si256(c2[10614],_mm256_xor_si256(c2[2176],_mm256_xor_si256(c2[2886],_mm256_xor_si256(c2[3238],_mm256_xor_si256(c2[10276],_mm256_xor_si256(c2[10628],_mm256_xor_si256(c2[10276],_mm256_xor_si256(c2[5015],_mm256_xor_si256(c2[6070],_mm256_xor_si256(c2[10647],_mm256_xor_si256(c2[10999],_mm256_xor_si256(c2[7140],_mm256_xor_si256(c2[2215],_mm256_xor_si256(c2[2567],_mm256_xor_si256(c2[11008],_mm256_xor_si256(c2[97],_mm256_xor_si256(c2[2931],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[5395],_mm256_xor_si256(c2[4336],_mm256_xor_si256(c2[4688],_mm256_xor_si256(c2[6471],_mm256_xor_si256(c2[9281],_mm256_xor_si256(c2[9633],_mm256_xor_si256(c2[9987],_mm256_xor_si256(c2[10339],_mm256_xor_si256(c2[1910],_mm256_xor_si256(c2[8241],_mm256_xor_si256(c2[2967],_mm256_xor_si256(c2[3319],_mm256_xor_si256(c2[5443],_mm256_xor_si256(c2[5797],_mm256_xor_si256(c2[6149],_mm256_xor_si256(c2[6144],_mm256_xor_si256(c2[6496],_mm256_xor_si256(c2[8631],_mm256_xor_si256(c2[2291],_mm256_xor_si256(c2[11094],_mm256_xor_si256(c2[183],_mm256_xor_si256(c2[3362],_mm256_xor_si256(c2[5831],_mm256_xor_si256(c2[11107],_mm256_xor_si256(c2[196],_mm256_xor_si256(c2[6900],_mm256_xor_si256(c2[8304],_mm256_xor_si256(c2[8656],_mm256_xor_si256(c2[1619],_mm256_xor_si256(c2[1971],_mm256_xor_si256(c2[8327],_mm256_xor_si256(c2[3747],_mm256_xor_si256(c2[4099],_mm256_xor_si256(c2[10082],_mm256_xor_si256(c2[10434],_mm256_xor_si256(c2[4818],_mm256_xor_si256(c2[5168],_mm256_xor_si256(c2[3763],_mm256_xor_si256(c2[4115],_mm256_xor_si256(c2[613],_mm256_xor_si256(c2[8704],_mm256_xor_si256(c2[9059],_mm256_xor_si256(c2[9411],_mm256_xor_si256(c2[2033],_mm256_xor_si256(c2[10835],_mm256_xor_si256(c2[11187],_mm256_xor_si256(c2[7670],_mm256_xor_si256(c2[8022],_mm256_xor_si256(c2[3106],_mm256_xor_si256(c2[8034],_mm256_xor_si256(c2[8386],_mm256_xor_si256(c2[10499],_mm256_xor_si256(c2[10851],_mm256_xor_si256(c2[4885],_mm256_xor_si256(c2[3476],_mm256_xor_si256(c2[1716],_mm256_xor_si256(c2[2068],_mm256_xor_si256(c2[9123],_mm256_xor_si256(c2[10887],_mm256_xor_si256(c2[11239],_mm256_xor_si256(c2[9120],_mm256_xor_si256(c2[9472],_mm256_xor_si256(c2[3509],_mm256_xor_si256(c2[2453],_mm256_xor_si256(c2[7732],c2[8084]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 43
d2[344]=_mm256_xor_si256(c2[2116],_mm256_xor_si256(c2[4932],_mm256_xor_si256(c2[7751],_mm256_xor_si256(c2[1408],_mm256_xor_si256(c2[1760],_mm256_xor_si256(c2[6006],_mm256_xor_si256(c2[9527],_mm256_xor_si256(c2[1431],_mm256_xor_si256(c2[1783],_mm256_xor_si256(c2[8116],_mm256_xor_si256(c2[4963],_mm256_xor_si256(c2[9539],_mm256_xor_si256(c2[1794],_mm256_xor_si256(c2[3921],_mm256_xor_si256(c2[400],_mm256_xor_si256(c2[10966],_mm256_xor_si256(c2[55],_mm256_xor_si256(c2[2880],_mm256_xor_si256(c2[3942],_mm256_xor_si256(c2[10980],_mm256_xor_si256(c2[69],_mm256_xor_si256(c2[5719],_mm256_xor_si256(c2[6774],_mm256_xor_si256(c2[432],_mm256_xor_si256(c2[7844],_mm256_xor_si256(c2[3271],_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[801],_mm256_xor_si256(c2[3635],_mm256_xor_si256(c2[6099],_mm256_xor_si256(c2[5040],_mm256_xor_si256(c2[5392],_mm256_xor_si256(c2[7175],_mm256_xor_si256(c2[10337],_mm256_xor_si256(c2[10691],_mm256_xor_si256(c2[11043],_mm256_xor_si256(c2[2614],_mm256_xor_si256(c2[8945],_mm256_xor_si256(c2[4023],_mm256_xor_si256(c2[6147],_mm256_xor_si256(c2[6853],_mm256_xor_si256(c2[6848],_mm256_xor_si256(c2[7200],_mm256_xor_si256(c2[9335],_mm256_xor_si256(c2[2995],_mm256_xor_si256(c2[535],_mm256_xor_si256(c2[887],_mm256_xor_si256(c2[4066],_mm256_xor_si256(c2[6535],_mm256_xor_si256(c2[548],_mm256_xor_si256(c2[900],_mm256_xor_si256(c2[7604],_mm256_xor_si256(c2[9360],_mm256_xor_si256(c2[2323],_mm256_xor_si256(c2[2675],_mm256_xor_si256(c2[9031],_mm256_xor_si256(c2[4803],_mm256_xor_si256(c2[10786],_mm256_xor_si256(c2[11138],_mm256_xor_si256(c2[5522],_mm256_xor_si256(c2[5872],_mm256_xor_si256(c2[4819],_mm256_xor_si256(c2[1317],_mm256_xor_si256(c2[9408],_mm256_xor_si256(c2[9763],_mm256_xor_si256(c2[10115],_mm256_xor_si256(c2[1317],_mm256_xor_si256(c2[2737],_mm256_xor_si256(c2[628],_mm256_xor_si256(c2[8374],_mm256_xor_si256(c2[8726],_mm256_xor_si256(c2[3810],_mm256_xor_si256(c2[9090],_mm256_xor_si256(c2[11203],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[4869],_mm256_xor_si256(c2[5589],_mm256_xor_si256(c2[4180],_mm256_xor_si256(c2[2772],_mm256_xor_si256(c2[9827],_mm256_xor_si256(c2[672],_mm256_xor_si256(c2[9824],_mm256_xor_si256(c2[10176],_mm256_xor_si256(c2[4213],_mm256_xor_si256(c2[3157],_mm256_xor_si256(c2[8436],c2[8788]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 44
d2[352]=_mm256_xor_si256(c2[2469],_mm256_xor_si256(c2[5285],_mm256_xor_si256(c2[8096],_mm256_xor_si256(c2[2113],_mm256_xor_si256(c2[3876],_mm256_xor_si256(c2[6359],_mm256_xor_si256(c2[9872],_mm256_xor_si256(c2[2128],_mm256_xor_si256(c2[5316],_mm256_xor_si256(c2[9892],_mm256_xor_si256(c2[2147],_mm256_xor_si256(c2[4274],_mm256_xor_si256(c2[753],_mm256_xor_si256(c2[400],_mm256_xor_si256(c2[3233],_mm256_xor_si256(c2[4295],_mm256_xor_si256(c2[422],_mm256_xor_si256(c2[6064],_mm256_xor_si256(c2[7127],_mm256_xor_si256(c2[785],_mm256_xor_si256(c2[8197],_mm256_xor_si256(c2[3616],_mm256_xor_si256(c2[1154],_mm256_xor_si256(c2[3988],_mm256_xor_si256(c2[6452],_mm256_xor_si256(c2[5745],_mm256_xor_si256(c2[10324],_mm256_xor_si256(c2[7520],_mm256_xor_si256(c2[10690],_mm256_xor_si256(c2[133],_mm256_xor_si256(c2[2967],_mm256_xor_si256(c2[9298],_mm256_xor_si256(c2[4368],_mm256_xor_si256(c2[1205],_mm256_xor_si256(c2[6500],_mm256_xor_si256(c2[7206],_mm256_xor_si256(c2[7553],_mm256_xor_si256(c2[9680],_mm256_xor_si256(c2[3348],_mm256_xor_si256(c2[1232],_mm256_xor_si256(c2[4419],_mm256_xor_si256(c2[6880],_mm256_xor_si256(c2[1253],_mm256_xor_si256(c2[7957],_mm256_xor_si256(c2[9713],_mm256_xor_si256(c2[3028],_mm256_xor_si256(c2[9376],_mm256_xor_si256(c2[5156],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[5875],_mm256_xor_si256(c2[6225],_mm256_xor_si256(c2[5172],_mm256_xor_si256(c2[1670],_mm256_xor_si256(c2[9761],_mm256_xor_si256(c2[10468],_mm256_xor_si256(c2[3090],_mm256_xor_si256(c2[981],_mm256_xor_si256(c2[9079],_mm256_xor_si256(c2[4163],_mm256_xor_si256(c2[9443],_mm256_xor_si256(c2[645],_mm256_xor_si256(c2[5942],_mm256_xor_si256(c2[4533],_mm256_xor_si256(c2[3125],_mm256_xor_si256(c2[10180],_mm256_xor_si256(c2[1025],_mm256_xor_si256(c2[10529],_mm256_xor_si256(c2[4566],_mm256_xor_si256(c2[3510],c2[9141])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 45
d2[360]=_mm256_xor_si256(c2[7412],_mm256_xor_si256(c2[8196],c2[2629]));
}
}
#include "PHY/sse_intrin.h"
// generated code for Zc=288, byte encoding
static inline void ldpc288_byte(uint8_t *c,uint8_t *d) {
__m256i *csimd=(__m256i *)c,*dsimd=(__m256i *)d;
__m256i *c2,*d2;
int i2;
for (i2=0; i2<9; i2++) {
c2=&csimd[i2];
d2=&dsimd[i2];
//row: 0
d2[0]=_mm256_xor_si256(c2[7530],_mm256_xor_si256(c2[7529],_mm256_xor_si256(c2[800],_mm256_xor_si256(c2[10697],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[2795],_mm256_xor_si256(c2[6754],_mm256_xor_si256(c2[11129],_mm256_xor_si256(c2[833],_mm256_xor_si256(c2[11130],_mm256_xor_si256(c2[10355],_mm256_xor_si256(c2[12336],_mm256_xor_si256(c2[2435],_mm256_xor_si256(c2[80],_mm256_xor_si256(c2[2056],_mm256_xor_si256(c2[4827],_mm256_xor_si256(c2[10788],_mm256_xor_si256(c2[95],_mm256_xor_si256(c2[7621],_mm256_xor_si256(c2[1692],_mm256_xor_si256(c2[4074],_mm256_xor_si256(c2[7238],_mm256_xor_si256(c2[4880],_mm256_xor_si256(c2[10428],_mm256_xor_si256(c2[1714],_mm256_xor_si256(c2[4110],_mm256_xor_si256(c2[12421],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[11646],_mm256_xor_si256(c2[8481],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[6520],_mm256_xor_si256(c2[1368],_mm256_xor_si256(c2[3745],_mm256_xor_si256(c2[8121],_mm256_xor_si256(c2[5349],_mm256_xor_si256(c2[995],_mm256_xor_si256(c2[9726],_mm256_xor_si256(c2[6156],_mm256_xor_si256(c2[10117],_mm256_xor_si256(c2[7761],_mm256_xor_si256(c2[4196],_mm256_xor_si256(c2[1819],_mm256_xor_si256(c2[3422],_mm256_xor_si256(c2[2239],_mm256_xor_si256(c2[7779],_mm256_xor_si256(c2[3841],_mm256_xor_si256(c2[9778],_mm256_xor_si256(c2[270],_mm256_xor_si256(c2[6628],_mm256_xor_si256(c2[12172],_mm256_xor_si256(c2[7423],_mm256_xor_si256(c2[7834],_mm256_xor_si256(c2[9816],_mm256_xor_si256(c2[2291],_mm256_xor_si256(c2[12602],_mm256_xor_si256(c2[5480],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[9852],_mm256_xor_si256(c2[11434],_mm256_xor_si256(c2[3516],_mm256_xor_si256(c2[3926],_mm256_xor_si256(c2[4327],_mm256_xor_si256(c2[7095],_mm256_xor_si256(c2[2366],_mm256_xor_si256(c2[9489],c2[5133]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 1
d2[9]=_mm256_xor_si256(c2[7530],_mm256_xor_si256(c2[7926],_mm256_xor_si256(c2[7925],_mm256_xor_si256(c2[1196],_mm256_xor_si256(c2[11093],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[2796],_mm256_xor_si256(c2[3191],_mm256_xor_si256(c2[7150],_mm256_xor_si256(c2[11129],_mm256_xor_si256(c2[11525],_mm256_xor_si256(c2[1229],_mm256_xor_si256(c2[11526],_mm256_xor_si256(c2[10355],_mm256_xor_si256(c2[10751],_mm256_xor_si256(c2[61],_mm256_xor_si256(c2[2831],_mm256_xor_si256(c2[476],_mm256_xor_si256(c2[2452],_mm256_xor_si256(c2[5223],_mm256_xor_si256(c2[10788],_mm256_xor_si256(c2[11184],_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[8017],_mm256_xor_si256(c2[1692],_mm256_xor_si256(c2[2088],_mm256_xor_si256(c2[4470],_mm256_xor_si256(c2[7634],_mm256_xor_si256(c2[5276],_mm256_xor_si256(c2[10824],_mm256_xor_si256(c2[2110],_mm256_xor_si256(c2[4506],_mm256_xor_si256(c2[146],_mm256_xor_si256(c2[2526],_mm256_xor_si256(c2[11646],_mm256_xor_si256(c2[12042],_mm256_xor_si256(c2[8877],_mm256_xor_si256(c2[558],_mm256_xor_si256(c2[6520],_mm256_xor_si256(c2[6916],_mm256_xor_si256(c2[1764],_mm256_xor_si256(c2[4141],_mm256_xor_si256(c2[8121],_mm256_xor_si256(c2[8517],_mm256_xor_si256(c2[5745],_mm256_xor_si256(c2[1391],_mm256_xor_si256(c2[9726],_mm256_xor_si256(c2[10122],_mm256_xor_si256(c2[6552],_mm256_xor_si256(c2[10513],_mm256_xor_si256(c2[7761],_mm256_xor_si256(c2[8157],_mm256_xor_si256(c2[4592],_mm256_xor_si256(c2[2215],_mm256_xor_si256(c2[3818],_mm256_xor_si256(c2[2635],_mm256_xor_si256(c2[8175],_mm256_xor_si256(c2[3841],_mm256_xor_si256(c2[4237],_mm256_xor_si256(c2[10174],_mm256_xor_si256(c2[666],_mm256_xor_si256(c2[6628],_mm256_xor_si256(c2[7024],_mm256_xor_si256(c2[12568],_mm256_xor_si256(c2[7819],_mm256_xor_si256(c2[8230],_mm256_xor_si256(c2[10212],_mm256_xor_si256(c2[2687],_mm256_xor_si256(c2[12602],_mm256_xor_si256(c2[327],_mm256_xor_si256(c2[5876],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[9852],_mm256_xor_si256(c2[10248],_mm256_xor_si256(c2[11830],_mm256_xor_si256(c2[3912],_mm256_xor_si256(c2[3926],_mm256_xor_si256(c2[4322],_mm256_xor_si256(c2[4723],_mm256_xor_si256(c2[7491],_mm256_xor_si256(c2[2366],_mm256_xor_si256(c2[2762],_mm256_xor_si256(c2[9885],c2[5529])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 2
d2[18]=_mm256_xor_si256(c2[7926],_mm256_xor_si256(c2[7925],_mm256_xor_si256(c2[800],_mm256_xor_si256(c2[1196],_mm256_xor_si256(c2[10697],_mm256_xor_si256(c2[11093],_mm256_xor_si256(c2[2796],_mm256_xor_si256(c2[2795],_mm256_xor_si256(c2[3191],_mm256_xor_si256(c2[6754],_mm256_xor_si256(c2[7150],_mm256_xor_si256(c2[11525],_mm256_xor_si256(c2[1229],_mm256_xor_si256(c2[11130],_mm256_xor_si256(c2[11526],_mm256_xor_si256(c2[10751],_mm256_xor_si256(c2[61],_mm256_xor_si256(c2[2435],_mm256_xor_si256(c2[2831],_mm256_xor_si256(c2[476],_mm256_xor_si256(c2[2056],_mm256_xor_si256(c2[2452],_mm256_xor_si256(c2[4827],_mm256_xor_si256(c2[5223],_mm256_xor_si256(c2[11184],_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[7621],_mm256_xor_si256(c2[8017],_mm256_xor_si256(c2[2088],_mm256_xor_si256(c2[4074],_mm256_xor_si256(c2[4470],_mm256_xor_si256(c2[7238],_mm256_xor_si256(c2[7634],_mm256_xor_si256(c2[5276],_mm256_xor_si256(c2[10428],_mm256_xor_si256(c2[10824],_mm256_xor_si256(c2[1714],_mm256_xor_si256(c2[2110],_mm256_xor_si256(c2[4506],_mm256_xor_si256(c2[12421],_mm256_xor_si256(c2[146],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[2526],_mm256_xor_si256(c2[12042],_mm256_xor_si256(c2[8877],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[558],_mm256_xor_si256(c2[6916],_mm256_xor_si256(c2[1368],_mm256_xor_si256(c2[1764],_mm256_xor_si256(c2[3745],_mm256_xor_si256(c2[4141],_mm256_xor_si256(c2[8517],_mm256_xor_si256(c2[5745],_mm256_xor_si256(c2[995],_mm256_xor_si256(c2[1391],_mm256_xor_si256(c2[10122],_mm256_xor_si256(c2[6552],_mm256_xor_si256(c2[10117],_mm256_xor_si256(c2[10513],_mm256_xor_si256(c2[8157],_mm256_xor_si256(c2[4196],_mm256_xor_si256(c2[4592],_mm256_xor_si256(c2[1819],_mm256_xor_si256(c2[2215],_mm256_xor_si256(c2[3818],_mm256_xor_si256(c2[2239],_mm256_xor_si256(c2[2635],_mm256_xor_si256(c2[7779],_mm256_xor_si256(c2[8175],_mm256_xor_si256(c2[4237],_mm256_xor_si256(c2[10174],_mm256_xor_si256(c2[270],_mm256_xor_si256(c2[666],_mm256_xor_si256(c2[7024],_mm256_xor_si256(c2[12568],_mm256_xor_si256(c2[7423],_mm256_xor_si256(c2[7819],_mm256_xor_si256(c2[8230],_mm256_xor_si256(c2[9816],_mm256_xor_si256(c2[10212],_mm256_xor_si256(c2[2291],_mm256_xor_si256(c2[2687],_mm256_xor_si256(c2[327],_mm256_xor_si256(c2[5480],_mm256_xor_si256(c2[5876],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[10248],_mm256_xor_si256(c2[11830],_mm256_xor_si256(c2[3516],_mm256_xor_si256(c2[3912],_mm256_xor_si256(c2[4322],_mm256_xor_si256(c2[4327],_mm256_xor_si256(c2[4723],_mm256_xor_si256(c2[7095],_mm256_xor_si256(c2[7491],_mm256_xor_si256(c2[2762],_mm256_xor_si256(c2[9885],_mm256_xor_si256(c2[5133],c2[5529]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 3
d2[27]=_mm256_xor_si256(c2[7926],_mm256_xor_si256(c2[7925],_mm256_xor_si256(c2[1196],_mm256_xor_si256(c2[10697],_mm256_xor_si256(c2[11093],_mm256_xor_si256(c2[2796],_mm256_xor_si256(c2[3191],_mm256_xor_si256(c2[6754],_mm256_xor_si256(c2[7150],_mm256_xor_si256(c2[11525],_mm256_xor_si256(c2[1229],_mm256_xor_si256(c2[11526],_mm256_xor_si256(c2[10751],_mm256_xor_si256(c2[61],_mm256_xor_si256(c2[2435],_mm256_xor_si256(c2[2831],_mm256_xor_si256(c2[476],_mm256_xor_si256(c2[2452],_mm256_xor_si256(c2[4827],_mm256_xor_si256(c2[5223],_mm256_xor_si256(c2[11184],_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[8017],_mm256_xor_si256(c2[2088],_mm256_xor_si256(c2[4470],_mm256_xor_si256(c2[7238],_mm256_xor_si256(c2[7634],_mm256_xor_si256(c2[5276],_mm256_xor_si256(c2[10824],_mm256_xor_si256(c2[1714],_mm256_xor_si256(c2[2110],_mm256_xor_si256(c2[4506],_mm256_xor_si256(c2[146],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[2526],_mm256_xor_si256(c2[12042],_mm256_xor_si256(c2[8877],_mm256_xor_si256(c2[558],_mm256_xor_si256(c2[6916],_mm256_xor_si256(c2[1764],_mm256_xor_si256(c2[3745],_mm256_xor_si256(c2[4141],_mm256_xor_si256(c2[8517],_mm256_xor_si256(c2[5745],_mm256_xor_si256(c2[995],_mm256_xor_si256(c2[1391],_mm256_xor_si256(c2[10122],_mm256_xor_si256(c2[6552],_mm256_xor_si256(c2[10117],_mm256_xor_si256(c2[10513],_mm256_xor_si256(c2[8157],_mm256_xor_si256(c2[4592],_mm256_xor_si256(c2[1819],_mm256_xor_si256(c2[2215],_mm256_xor_si256(c2[3818],_mm256_xor_si256(c2[2635],_mm256_xor_si256(c2[7779],_mm256_xor_si256(c2[8175],_mm256_xor_si256(c2[4237],_mm256_xor_si256(c2[10174],_mm256_xor_si256(c2[666],_mm256_xor_si256(c2[7024],_mm256_xor_si256(c2[12568],_mm256_xor_si256(c2[7423],_mm256_xor_si256(c2[7819],_mm256_xor_si256(c2[8230],_mm256_xor_si256(c2[10212],_mm256_xor_si256(c2[2291],_mm256_xor_si256(c2[2687],_mm256_xor_si256(c2[327],_mm256_xor_si256(c2[5876],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[10248],_mm256_xor_si256(c2[11830],_mm256_xor_si256(c2[3912],_mm256_xor_si256(c2[4322],_mm256_xor_si256(c2[4723],_mm256_xor_si256(c2[7095],_mm256_xor_si256(c2[7491],_mm256_xor_si256(c2[2762],_mm256_xor_si256(c2[9885],_mm256_xor_si256(c2[5133],c2[5529])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 4
d2[36]=_mm256_xor_si256(c2[8719],c2[4381]);
//row: 5
d2[45]=_mm256_xor_si256(c2[1190],_mm256_xor_si256(c2[1189],_mm256_xor_si256(c2[7131],_mm256_xor_si256(c2[4357],_mm256_xor_si256(c2[1988],_mm256_xor_si256(c2[8731],_mm256_xor_si256(c2[9126],_mm256_xor_si256(c2[414],_mm256_xor_si256(c2[8339],_mm256_xor_si256(c2[4789],_mm256_xor_si256(c2[7164],_mm256_xor_si256(c2[4790],_mm256_xor_si256(c2[4015],_mm256_xor_si256(c2[5996],_mm256_xor_si256(c2[8766],_mm256_xor_si256(c2[3224],_mm256_xor_si256(c2[6411],_mm256_xor_si256(c2[8396],_mm256_xor_si256(c2[11167],_mm256_xor_si256(c2[4448],_mm256_xor_si256(c2[6426],_mm256_xor_si256(c2[1281],_mm256_xor_si256(c2[8032],_mm256_xor_si256(c2[10405],_mm256_xor_si256(c2[907],_mm256_xor_si256(c2[11220],_mm256_xor_si256(c2[4088],_mm256_xor_si256(c2[8054],_mm256_xor_si256(c2[10441],_mm256_xor_si256(c2[6090],_mm256_xor_si256(c2[8461],_mm256_xor_si256(c2[5315],_mm256_xor_si256(c2[2150],_mm256_xor_si256(c2[6502],_mm256_xor_si256(c2[180],_mm256_xor_si256(c2[7708],_mm256_xor_si256(c2[10085],_mm256_xor_si256(c2[1790],_mm256_xor_si256(c2[11689],_mm256_xor_si256(c2[7326],_mm256_xor_si256(c2[3386],_mm256_xor_si256(c2[12496],_mm256_xor_si256(c2[3786],_mm256_xor_si256(c2[10916],_mm256_xor_si256(c2[1430],_mm256_xor_si256(c2[10536],_mm256_xor_si256(c2[8159],_mm256_xor_si256(c2[9762],_mm256_xor_si256(c2[8570],_mm256_xor_si256(c2[1448],_mm256_xor_si256(c2[10172],_mm256_xor_si256(c2[3438],_mm256_xor_si256(c2[6610],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[5832],_mm256_xor_si256(c2[1083],_mm256_xor_si256(c2[12175],_mm256_xor_si256(c2[1494],_mm256_xor_si256(c2[3476],_mm256_xor_si256(c2[8622],_mm256_xor_si256(c2[6271],_mm256_xor_si256(c2[11811],_mm256_xor_si256(c2[6664],_mm256_xor_si256(c2[3512],_mm256_xor_si256(c2[5094],_mm256_xor_si256(c2[9847],_mm256_xor_si256(c2[10266],_mm256_xor_si256(c2[10658],_mm256_xor_si256(c2[764],_mm256_xor_si256(c2[8697],_mm256_xor_si256(c2[3158],_mm256_xor_si256(c2[11473],c2[6320]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 6
d2[54]=_mm256_xor_si256(c2[6338],_mm256_xor_si256(c2[6448],_mm256_xor_si256(c2[3749],_mm256_xor_si256(c2[10496],_mm256_xor_si256(c2[10927],_mm256_xor_si256(c2[7043],_mm256_xor_si256(c2[9436],c2[5115])))))));
//row: 7
d2[63]=_mm256_xor_si256(c2[3569],_mm256_xor_si256(c2[11507],_mm256_xor_si256(c2[10372],_mm256_xor_si256(c2[9635],_mm256_xor_si256(c2[3315],c2[1841])))));
//row: 8
d2[72]=_mm256_xor_si256(c2[9904],_mm256_xor_si256(c2[3968],_mm256_xor_si256(c2[9903],_mm256_xor_si256(c2[3967],_mm256_xor_si256(c2[3174],_mm256_xor_si256(c2[9504],_mm256_xor_si256(c2[9900],_mm256_xor_si256(c2[400],_mm256_xor_si256(c2[6739],_mm256_xor_si256(c2[7135],_mm256_xor_si256(c2[8713],_mm256_xor_si256(c2[4774],_mm256_xor_si256(c2[11509],_mm256_xor_si256(c2[5169],_mm256_xor_si256(c2[11508],_mm256_xor_si256(c2[11904],_mm256_xor_si256(c2[9128],_mm256_xor_si256(c2[2796],_mm256_xor_si256(c2[3192],_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[832],_mm256_xor_si256(c2[7567],_mm256_xor_si256(c2[3207],_mm256_xor_si256(c2[9942],_mm256_xor_si256(c2[833],_mm256_xor_si256(c2[7172],_mm256_xor_si256(c2[7568],_mm256_xor_si256(c2[58],_mm256_xor_si256(c2[6793],_mm256_xor_si256(c2[2039],_mm256_xor_si256(c2[8774],_mm256_xor_si256(c2[4809],_mm256_xor_si256(c2[11148],_mm256_xor_si256(c2[11544],_mm256_xor_si256(c2[11149],_mm256_xor_si256(c2[2454],_mm256_xor_si256(c2[9180],_mm256_xor_si256(c2[4430],_mm256_xor_si256(c2[10769],_mm256_xor_si256(c2[11165],_mm256_xor_si256(c2[7201],_mm256_xor_si256(c2[869],_mm256_xor_si256(c2[1265],_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[7226],_mm256_xor_si256(c2[2469],_mm256_xor_si256(c2[9204],_mm256_xor_si256(c2[9995],_mm256_xor_si256(c2[3654],_mm256_xor_si256(c2[4050],_mm256_xor_si256(c2[4075],_mm256_xor_si256(c2[10801],_mm256_xor_si256(c2[6448],_mm256_xor_si256(c2[116],_mm256_xor_si256(c2[512],_mm256_xor_si256(c2[9612],_mm256_xor_si256(c2[3280],_mm256_xor_si256(c2[3676],_mm256_xor_si256(c2[7254],_mm256_xor_si256(c2[1318],_mm256_xor_si256(c2[131],_mm256_xor_si256(c2[6470],_mm256_xor_si256(c2[6866],_mm256_xor_si256(c2[4088],_mm256_xor_si256(c2[10427],_mm256_xor_si256(c2[10823],_mm256_xor_si256(c2[6484],_mm256_xor_si256(c2[548],_mm256_xor_si256(c2[2124],_mm256_xor_si256(c2[8463],_mm256_xor_si256(c2[8859],_mm256_xor_si256(c2[4504],_mm256_xor_si256(c2[10843],_mm256_xor_si256(c2[11239],_mm256_xor_si256(c2[1358],_mm256_xor_si256(c2[8084],_mm256_xor_si256(c2[10855],_mm256_xor_si256(c2[4919],_mm256_xor_si256(c2[2545],_mm256_xor_si256(c2[8875],_mm256_xor_si256(c2[9271],_mm256_xor_si256(c2[8894],_mm256_xor_si256(c2[2958],_mm256_xor_si256(c2[3751],_mm256_xor_si256(c2[10081],_mm256_xor_si256(c2[10477],_mm256_xor_si256(c2[6128],_mm256_xor_si256(c2[12458],_mm256_xor_si256(c2[183],_mm256_xor_si256(c2[10495],_mm256_xor_si256(c2[4559],_mm256_xor_si256(c2[7723],_mm256_xor_si256(c2[1787],_mm256_xor_si256(c2[3369],_mm256_xor_si256(c2[9708],_mm256_xor_si256(c2[10104],_mm256_xor_si256(c2[12100],_mm256_xor_si256(c2[6164],_mm256_xor_si256(c2[8539],_mm256_xor_si256(c2[2594],_mm256_xor_si256(c2[12500],_mm256_xor_si256(c2[6159],_mm256_xor_si256(c2[6555],_mm256_xor_si256(c2[3781],_mm256_xor_si256(c2[10135],_mm256_xor_si256(c2[4199],_mm256_xor_si256(c2[6570],_mm256_xor_si256(c2[238],_mm256_xor_si256(c2[634],_mm256_xor_si256(c2[4202],_mm256_xor_si256(c2[10532],_mm256_xor_si256(c2[10928],_mm256_xor_si256(c2[5796],_mm256_xor_si256(c2[12531],_mm256_xor_si256(c2[4613],_mm256_xor_si256(c2[10952],_mm256_xor_si256(c2[11348],_mm256_xor_si256(c2[10153],_mm256_xor_si256(c2[3821],_mm256_xor_si256(c2[4217],_mm256_xor_si256(c2[6215],_mm256_xor_si256(c2[270],_mm256_xor_si256(c2[12152],_mm256_xor_si256(c2[6216],_mm256_xor_si256(c2[2653],_mm256_xor_si256(c2[8983],_mm256_xor_si256(c2[9379],_mm256_xor_si256(c2[9002],_mm256_xor_si256(c2[3066],_mm256_xor_si256(c2[1875],_mm256_xor_si256(c2[8610],_mm256_xor_si256(c2[9797],_mm256_xor_si256(c2[3456],_mm256_xor_si256(c2[3852],_mm256_xor_si256(c2[1083],_mm256_xor_si256(c2[10208],_mm256_xor_si256(c2[4272],_mm256_xor_si256(c2[12190],_mm256_xor_si256(c2[5858],_mm256_xor_si256(c2[6254],_mm256_xor_si256(c2[4665],_mm256_xor_si256(c2[11004],_mm256_xor_si256(c2[11400],_mm256_xor_si256(c2[2305],_mm256_xor_si256(c2[9040],_mm256_xor_si256(c2[7854],_mm256_xor_si256(c2[1513],_mm256_xor_si256(c2[1909],_mm256_xor_si256(c2[2707],_mm256_xor_si256(c2[9037],_mm256_xor_si256(c2[9433],_mm256_xor_si256(c2[12226],_mm256_xor_si256(c2[6290],_mm256_xor_si256(c2[1137],_mm256_xor_si256(c2[7872],_mm256_xor_si256(c2[5890],_mm256_xor_si256(c2[12229],_mm256_xor_si256(c2[12625],_mm256_xor_si256(c2[5887],_mm256_xor_si256(c2[6300],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[6701],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[756],_mm256_xor_si256(c2[9469],_mm256_xor_si256(c2[3137],_mm256_xor_si256(c2[3533],_mm256_xor_si256(c2[4740],_mm256_xor_si256(c2[11466],_mm256_xor_si256(c2[11863],_mm256_xor_si256(c2[5927],_mm256_xor_si256(c2[7507],_mm256_xor_si256(c2[1175],_mm256_xor_si256(c2[1571],c2[6318]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 9
d2[81]=_mm256_xor_si256(c2[797],_mm256_xor_si256(c2[12298],_mm256_xor_si256(c2[11666],_mm256_xor_si256(c2[2578],_mm256_xor_si256(c2[5383],_mm256_xor_si256(c2[1894],_mm256_xor_si256(c2[5078],c2[7098])))))));
//row: 10
d2[90]=_mm256_xor_si256(c2[7151],_mm256_xor_si256(c2[432],_mm256_xor_si256(c2[11160],_mm256_xor_si256(c2[4490],_mm256_xor_si256(c2[4111],c2[3822])))));
//row: 11
d2[99]=_mm256_xor_si256(c2[10303],_mm256_xor_si256(c2[5155],_mm256_xor_si256(c2[5551],_mm256_xor_si256(c2[10302],_mm256_xor_si256(c2[5550],_mm256_xor_si256(c2[3564],_mm256_xor_si256(c2[11492],_mm256_xor_si256(c2[799],_mm256_xor_si256(c2[8718],_mm256_xor_si256(c2[9109],_mm256_xor_si256(c2[5173],_mm256_xor_si256(c2[25],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[5568],_mm256_xor_si256(c2[816],_mm256_xor_si256(c2[9527],_mm256_xor_si256(c2[4775],_mm256_xor_si256(c2[9126],_mm256_xor_si256(c2[1231],_mm256_xor_si256(c2[8754],_mm256_xor_si256(c2[9150],_mm256_xor_si256(c2[3606],_mm256_xor_si256(c2[11525],_mm256_xor_si256(c2[1232],_mm256_xor_si256(c2[9151],_mm256_xor_si256(c2[457],_mm256_xor_si256(c2[7980],_mm256_xor_si256(c2[8376],_mm256_xor_si256(c2[2438],_mm256_xor_si256(c2[10357],_mm256_xor_si256(c2[5208],_mm256_xor_si256(c2[456],_mm256_xor_si256(c2[2844],_mm256_xor_si256(c2[10772],_mm256_xor_si256(c2[4829],_mm256_xor_si256(c2[77],_mm256_xor_si256(c2[7600],_mm256_xor_si256(c2[2848],_mm256_xor_si256(c2[890],_mm256_xor_si256(c2[8413],_mm256_xor_si256(c2[8809],_mm256_xor_si256(c2[2868],_mm256_xor_si256(c2[10787],_mm256_xor_si256(c2[10394],_mm256_xor_si256(c2[5642],_mm256_xor_si256(c2[4465],_mm256_xor_si256(c2[11988],_mm256_xor_si256(c2[12384],_mm256_xor_si256(c2[6847],_mm256_xor_si256(c2[2095],_mm256_xor_si256(c2[10011],_mm256_xor_si256(c2[5259],_mm256_xor_si256(c2[7653],_mm256_xor_si256(c2[2901],_mm256_xor_si256(c2[530],_mm256_xor_si256(c2[8449],_mm256_xor_si256(c2[4487],_mm256_xor_si256(c2[12406],_mm256_xor_si256(c2[6883],_mm256_xor_si256(c2[2131],_mm256_xor_si256(c2[2523],_mm256_xor_si256(c2[10442],_mm256_xor_si256(c2[4903],_mm256_xor_si256(c2[151],_mm256_xor_si256(c2[1748],_mm256_xor_si256(c2[9271],_mm256_xor_si256(c2[9667],_mm256_xor_si256(c2[11254],_mm256_xor_si256(c2[6502],_mm256_xor_si256(c2[2935],_mm256_xor_si256(c2[10854],_mm256_xor_si256(c2[9293],_mm256_xor_si256(c2[4145],_mm256_xor_si256(c2[4541],_mm256_xor_si256(c2[4141],_mm256_xor_si256(c2[12060],_mm256_xor_si256(c2[6518],_mm256_xor_si256(c2[1766],_mm256_xor_si256(c2[10894],_mm256_xor_si256(c2[5746],_mm256_xor_si256(c2[6142],_mm256_xor_si256(c2[8122],_mm256_xor_si256(c2[3370],_mm256_xor_si256(c2[3768],_mm256_xor_si256(c2[11687],_mm256_xor_si256(c2[12499],_mm256_xor_si256(c2[7351],_mm256_xor_si256(c2[7747],_mm256_xor_si256(c2[8929],_mm256_xor_si256(c2[4177],_mm256_xor_si256(c2[219],_mm256_xor_si256(c2[8138],_mm256_xor_si256(c2[7352],_mm256_xor_si256(c2[10534],_mm256_xor_si256(c2[5386],_mm256_xor_si256(c2[5782],_mm256_xor_si256(c2[6969],_mm256_xor_si256(c2[2217],_mm256_xor_si256(c2[4592],_mm256_xor_si256(c2[12511],_mm256_xor_si256(c2[6195],_mm256_xor_si256(c2[1443],_mm256_xor_si256(c2[5012],_mm256_xor_si256(c2[260],_mm256_xor_si256(c2[10552],_mm256_xor_si256(c2[5800],_mm256_xor_si256(c2[6614],_mm256_xor_si256(c2[1466],_mm256_xor_si256(c2[1862],_mm256_xor_si256(c2[12551],_mm256_xor_si256(c2[7799],_mm256_xor_si256(c2[3043],_mm256_xor_si256(c2[10962],_mm256_xor_si256(c2[9401],_mm256_xor_si256(c2[4253],_mm256_xor_si256(c2[4649],_mm256_xor_si256(c2[2274],_mm256_xor_si256(c2[10193],_mm256_xor_si256(c2[10196],_mm256_xor_si256(c2[5444],_mm256_xor_si256(c2[8609],_mm256_xor_si256(c2[10607],_mm256_xor_si256(c2[5855],_mm256_xor_si256(c2[12589],_mm256_xor_si256(c2[7837],_mm256_xor_si256(c2[5064],_mm256_xor_si256(c2[312],_mm256_xor_si256(c2[2704],_mm256_xor_si256(c2[10227],_mm256_xor_si256(c2[10623],_mm256_xor_si256(c2[8244],_mm256_xor_si256(c2[3492],_mm256_xor_si256(c2[3097],_mm256_xor_si256(c2[11016],_mm256_xor_si256(c2[12625],_mm256_xor_si256(c2[7477],_mm256_xor_si256(c2[7873],_mm256_xor_si256(c2[1536],_mm256_xor_si256(c2[9455],_mm256_xor_si256(c2[6289],_mm256_xor_si256(c2[1537],_mm256_xor_si256(c2[6699],_mm256_xor_si256(c2[1551],_mm256_xor_si256(c2[1947],_mm256_xor_si256(c2[7100],_mm256_xor_si256(c2[2348],_mm256_xor_si256(c2[9868],_mm256_xor_si256(c2[5116],_mm256_xor_si256(c2[5130],_mm256_xor_si256(c2[12662],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[12262],_mm256_xor_si256(c2[7510],_mm256_xor_si256(c2[7906],_mm256_xor_si256(c2[3154],c2[7118])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 12
d2[108]=_mm256_xor_si256(c2[403],_mm256_xor_si256(c2[815],_mm256_xor_si256(c2[8107],_mm256_xor_si256(c2[9310],_mm256_xor_si256(c2[5785],c2[7855])))));
//row: 13
d2[117]=_mm256_xor_si256(c2[9115],_mm256_xor_si256(c2[9511],_mm256_xor_si256(c2[9510],_mm256_xor_si256(c2[2772],_mm256_xor_si256(c2[7],_mm256_xor_si256(c2[2779],_mm256_xor_si256(c2[3985],_mm256_xor_si256(c2[4381],_mm256_xor_si256(c2[4776],_mm256_xor_si256(c2[8735],_mm256_xor_si256(c2[43],_mm256_xor_si256(c2[439],_mm256_xor_si256(c2[2814],_mm256_xor_si256(c2[440],_mm256_xor_si256(c2[11940],_mm256_xor_si256(c2[12336],_mm256_xor_si256(c2[1646],_mm256_xor_si256(c2[4416],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[2052],_mm256_xor_si256(c2[4037],_mm256_xor_si256(c2[6808],_mm256_xor_si256(c2[12373],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[2076],_mm256_xor_si256(c2[9602],_mm256_xor_si256(c2[3277],_mm256_xor_si256(c2[3673],_mm256_xor_si256(c2[6055],_mm256_xor_si256(c2[9219],_mm256_xor_si256(c2[6861],_mm256_xor_si256(c2[12409],_mm256_xor_si256(c2[3695],_mm256_xor_si256(c2[9636],_mm256_xor_si256(c2[6091],_mm256_xor_si256(c2[1731],_mm256_xor_si256(c2[4111],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[956],_mm256_xor_si256(c2[10462],_mm256_xor_si256(c2[2143],_mm256_xor_si256(c2[8105],_mm256_xor_si256(c2[8501],_mm256_xor_si256(c2[3349],_mm256_xor_si256(c2[5726],_mm256_xor_si256(c2[9706],_mm256_xor_si256(c2[10102],_mm256_xor_si256(c2[7330],_mm256_xor_si256(c2[2976],_mm256_xor_si256(c2[11311],_mm256_xor_si256(c2[11707],_mm256_xor_si256(c2[8137],_mm256_xor_si256(c2[12098],_mm256_xor_si256(c2[9346],_mm256_xor_si256(c2[9742],_mm256_xor_si256(c2[6177],_mm256_xor_si256(c2[3800],_mm256_xor_si256(c2[5403],_mm256_xor_si256(c2[4220],_mm256_xor_si256(c2[9760],_mm256_xor_si256(c2[5426],_mm256_xor_si256(c2[5822],_mm256_xor_si256(c2[11759],_mm256_xor_si256(c2[2251],_mm256_xor_si256(c2[8213],_mm256_xor_si256(c2[8609],_mm256_xor_si256(c2[1482],_mm256_xor_si256(c2[9404],_mm256_xor_si256(c2[9815],_mm256_xor_si256(c2[11797],_mm256_xor_si256(c2[4272],_mm256_xor_si256(c2[1516],_mm256_xor_si256(c2[1912],_mm256_xor_si256(c2[7452],_mm256_xor_si256(c2[2305],_mm256_xor_si256(c2[11437],_mm256_xor_si256(c2[11833],_mm256_xor_si256(c2[744],_mm256_xor_si256(c2[5497],_mm256_xor_si256(c2[5511],_mm256_xor_si256(c2[5907],_mm256_xor_si256(c2[6308],_mm256_xor_si256(c2[9076],_mm256_xor_si256(c2[6301],_mm256_xor_si256(c2[3942],_mm256_xor_si256(c2[4338],_mm256_xor_si256(c2[11470],c2[7114])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 14
d2[126]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[10517],_mm256_xor_si256(c2[11761],_mm256_xor_si256(c2[6624],_mm256_xor_si256(c2[306],c2[6320])))));
//row: 15
d2[135]=_mm256_xor_si256(c2[7928],_mm256_xor_si256(c2[7927],_mm256_xor_si256(c2[1189],_mm256_xor_si256(c2[10699],_mm256_xor_si256(c2[11095],_mm256_xor_si256(c2[3965],_mm256_xor_si256(c2[2798],_mm256_xor_si256(c2[3193],_mm256_xor_si256(c2[6756],_mm256_xor_si256(c2[7152],_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[11527],_mm256_xor_si256(c2[1231],_mm256_xor_si256(c2[11528],_mm256_xor_si256(c2[10753],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[2437],_mm256_xor_si256(c2[2833],_mm256_xor_si256(c2[469],_mm256_xor_si256(c2[2454],_mm256_xor_si256(c2[4829],_mm256_xor_si256(c2[5225],_mm256_xor_si256(c2[11186],_mm256_xor_si256(c2[493],_mm256_xor_si256(c2[8010],_mm256_xor_si256(c2[2090],_mm256_xor_si256(c2[4472],_mm256_xor_si256(c2[7240],_mm256_xor_si256(c2[7636],_mm256_xor_si256(c2[5278],_mm256_xor_si256(c2[10826],_mm256_xor_si256(c2[1716],_mm256_xor_si256(c2[2112],_mm256_xor_si256(c2[4508],_mm256_xor_si256(c2[148],_mm256_xor_si256(c2[2132],_mm256_xor_si256(c2[2528],_mm256_xor_si256(c2[12044],_mm256_xor_si256(c2[8879],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[6918],_mm256_xor_si256(c2[1766],_mm256_xor_si256(c2[3747],_mm256_xor_si256(c2[4143],_mm256_xor_si256(c2[9293],_mm256_xor_si256(c2[8519],_mm256_xor_si256(c2[5747],_mm256_xor_si256(c2[997],_mm256_xor_si256(c2[1393],_mm256_xor_si256(c2[10124],_mm256_xor_si256(c2[6554],_mm256_xor_si256(c2[10119],_mm256_xor_si256(c2[10515],_mm256_xor_si256(c2[8159],_mm256_xor_si256(c2[4594],_mm256_xor_si256(c2[1821],_mm256_xor_si256(c2[2217],_mm256_xor_si256(c2[4989],_mm256_xor_si256(c2[3820],_mm256_xor_si256(c2[2628],_mm256_xor_si256(c2[7781],_mm256_xor_si256(c2[8177],_mm256_xor_si256(c2[4230],_mm256_xor_si256(c2[10176],_mm256_xor_si256(c2[668],_mm256_xor_si256(c2[7026],_mm256_xor_si256(c2[12570],_mm256_xor_si256(c2[7416],_mm256_xor_si256(c2[7812],_mm256_xor_si256(c2[8232],_mm256_xor_si256(c2[10214],_mm256_xor_si256(c2[2293],_mm256_xor_si256(c2[2689],_mm256_xor_si256(c2[329],_mm256_xor_si256(c2[5869],_mm256_xor_si256(c2[326],_mm256_xor_si256(c2[722],_mm256_xor_si256(c2[1910],_mm256_xor_si256(c2[10250],_mm256_xor_si256(c2[11832],_mm256_xor_si256(c2[3914],_mm256_xor_si256(c2[4324],_mm256_xor_si256(c2[4716],_mm256_xor_si256(c2[7097],_mm256_xor_si256(c2[7493],_mm256_xor_si256(c2[2755],_mm256_xor_si256(c2[9887],_mm256_xor_si256(c2[5135],c2[5531]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 16
d2[144]=_mm256_xor_si256(c2[7530],_mm256_xor_si256(c2[7529],_mm256_xor_si256(c2[800],_mm256_xor_si256(c2[10697],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[2795],_mm256_xor_si256(c2[6754],_mm256_xor_si256(c2[5570],_mm256_xor_si256(c2[11129],_mm256_xor_si256(c2[833],_mm256_xor_si256(c2[11130],_mm256_xor_si256(c2[10355],_mm256_xor_si256(c2[12336],_mm256_xor_si256(c2[2435],_mm256_xor_si256(c2[5202],_mm256_xor_si256(c2[80],_mm256_xor_si256(c2[2056],_mm256_xor_si256(c2[4827],_mm256_xor_si256(c2[10788],_mm256_xor_si256(c2[95],_mm256_xor_si256(c2[7621],_mm256_xor_si256(c2[1692],_mm256_xor_si256(c2[4074],_mm256_xor_si256(c2[7238],_mm256_xor_si256(c2[4880],_mm256_xor_si256(c2[10428],_mm256_xor_si256(c2[1714],_mm256_xor_si256(c2[4110],_mm256_xor_si256(c2[12421],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[11646],_mm256_xor_si256(c2[8481],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[6520],_mm256_xor_si256(c2[1368],_mm256_xor_si256(c2[3745],_mm256_xor_si256(c2[8121],_mm256_xor_si256(c2[5349],_mm256_xor_si256(c2[995],_mm256_xor_si256(c2[1389],_mm256_xor_si256(c2[9726],_mm256_xor_si256(c2[6156],_mm256_xor_si256(c2[10117],_mm256_xor_si256(c2[7761],_mm256_xor_si256(c2[4196],_mm256_xor_si256(c2[1819],_mm256_xor_si256(c2[3422],_mm256_xor_si256(c2[2239],_mm256_xor_si256(c2[7779],_mm256_xor_si256(c2[3841],_mm256_xor_si256(c2[9778],_mm256_xor_si256(c2[270],_mm256_xor_si256(c2[6628],_mm256_xor_si256(c2[12172],_mm256_xor_si256(c2[7423],_mm256_xor_si256(c2[7834],_mm256_xor_si256(c2[9816],_mm256_xor_si256(c2[2291],_mm256_xor_si256(c2[12602],_mm256_xor_si256(c2[5480],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[9852],_mm256_xor_si256(c2[11434],_mm256_xor_si256(c2[3516],_mm256_xor_si256(c2[3926],_mm256_xor_si256(c2[4327],_mm256_xor_si256(c2[7095],_mm256_xor_si256(c2[9073],_mm256_xor_si256(c2[2366],_mm256_xor_si256(c2[9489],c2[5133]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 17
d2[153]=_mm256_xor_si256(c2[9904],_mm256_xor_si256(c2[3820],_mm256_xor_si256(c2[288],_mm256_xor_si256(c2[306],c2[1175]))));
//row: 18
d2[162]=_mm256_xor_si256(c2[419],_mm256_xor_si256(c2[9328],_mm256_xor_si256(c2[234],_mm256_xor_si256(c2[7063],c2[6682]))));
//row: 19
d2[171]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[8841],_mm256_xor_si256(c2[6484],c2[180]))));
//row: 20
d2[180]=_mm256_xor_si256(c2[9112],_mm256_xor_si256(c2[9111],_mm256_xor_si256(c2[2382],_mm256_xor_si256(c2[12279],_mm256_xor_si256(c2[3572],_mm256_xor_si256(c2[3982],_mm256_xor_si256(c2[4377],_mm256_xor_si256(c2[8336],_mm256_xor_si256(c2[40],_mm256_xor_si256(c2[2415],_mm256_xor_si256(c2[41],_mm256_xor_si256(c2[11937],_mm256_xor_si256(c2[1247],_mm256_xor_si256(c2[4017],_mm256_xor_si256(c2[6788],_mm256_xor_si256(c2[1662],_mm256_xor_si256(c2[3638],_mm256_xor_si256(c2[6409],_mm256_xor_si256(c2[12370],_mm256_xor_si256(c2[1677],_mm256_xor_si256(c2[9203],_mm256_xor_si256(c2[3283],_mm256_xor_si256(c2[5656],_mm256_xor_si256(c2[8820],_mm256_xor_si256(c2[6462],_mm256_xor_si256(c2[12010],_mm256_xor_si256(c2[3296],_mm256_xor_si256(c2[5692],_mm256_xor_si256(c2[1332],_mm256_xor_si256(c2[3712],_mm256_xor_si256(c2[566],_mm256_xor_si256(c2[10063],_mm256_xor_si256(c2[1753],_mm256_xor_si256(c2[10460],_mm256_xor_si256(c2[8102],_mm256_xor_si256(c2[2959],_mm256_xor_si256(c2[5336],_mm256_xor_si256(c2[9703],_mm256_xor_si256(c2[6931],_mm256_xor_si256(c2[2577],_mm256_xor_si256(c2[6538],_mm256_xor_si256(c2[11308],_mm256_xor_si256(c2[7747],_mm256_xor_si256(c2[11708],_mm256_xor_si256(c2[9343],_mm256_xor_si256(c2[5778],_mm256_xor_si256(c2[3410],_mm256_xor_si256(c2[5004],_mm256_xor_si256(c2[3821],_mm256_xor_si256(c2[9361],_mm256_xor_si256(c2[5423],_mm256_xor_si256(c2[11360],_mm256_xor_si256(c2[1861],_mm256_xor_si256(c2[8210],_mm256_xor_si256(c2[1083],_mm256_xor_si256(c2[9005],_mm256_xor_si256(c2[9416],_mm256_xor_si256(c2[11398],_mm256_xor_si256(c2[3873],_mm256_xor_si256(c2[1513],_mm256_xor_si256(c2[7062],_mm256_xor_si256(c2[1915],_mm256_xor_si256(c2[11434],_mm256_xor_si256(c2[345],_mm256_xor_si256(c2[5098],_mm256_xor_si256(c2[5508],_mm256_xor_si256(c2[5909],_mm256_xor_si256(c2[8677],_mm256_xor_si256(c2[3948],_mm256_xor_si256(c2[11071],c2[6715]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 21
d2[189]=_mm256_xor_si256(c2[20],_mm256_xor_si256(c2[5635],_mm256_xor_si256(c2[4256],_mm256_xor_si256(c2[3924],c2[7506]))));
//row: 22
d2[198]=_mm256_xor_si256(c2[3170],_mm256_xor_si256(c2[11705],_mm256_xor_si256(c2[3404],c2[710])));
//row: 23
d2[207]=_mm256_xor_si256(c2[7943],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[180],c2[2309])));
//row: 24
d2[216]=_mm256_xor_si256(c2[7530],_mm256_xor_si256(c2[7529],_mm256_xor_si256(c2[800],_mm256_xor_si256(c2[10697],_mm256_xor_si256(c2[4759],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[2795],_mm256_xor_si256(c2[6754],_mm256_xor_si256(c2[11129],_mm256_xor_si256(c2[833],_mm256_xor_si256(c2[11130],_mm256_xor_si256(c2[10355],_mm256_xor_si256(c2[12336],_mm256_xor_si256(c2[2435],_mm256_xor_si256(c2[2832],_mm256_xor_si256(c2[80],_mm256_xor_si256(c2[2056],_mm256_xor_si256(c2[4827],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[10788],_mm256_xor_si256(c2[95],_mm256_xor_si256(c2[7621],_mm256_xor_si256(c2[1692],_mm256_xor_si256(c2[4074],_mm256_xor_si256(c2[7238],_mm256_xor_si256(c2[4880],_mm256_xor_si256(c2[10428],_mm256_xor_si256(c2[1714],_mm256_xor_si256(c2[4110],_mm256_xor_si256(c2[12421],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[11646],_mm256_xor_si256(c2[8481],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[6520],_mm256_xor_si256(c2[1368],_mm256_xor_si256(c2[3745],_mm256_xor_si256(c2[8121],_mm256_xor_si256(c2[5349],_mm256_xor_si256(c2[995],_mm256_xor_si256(c2[4166],_mm256_xor_si256(c2[9726],_mm256_xor_si256(c2[6156],_mm256_xor_si256(c2[10117],_mm256_xor_si256(c2[7761],_mm256_xor_si256(c2[4196],_mm256_xor_si256(c2[1819],_mm256_xor_si256(c2[3422],_mm256_xor_si256(c2[2239],_mm256_xor_si256(c2[7779],_mm256_xor_si256(c2[3841],_mm256_xor_si256(c2[9778],_mm256_xor_si256(c2[270],_mm256_xor_si256(c2[6628],_mm256_xor_si256(c2[12172],_mm256_xor_si256(c2[7423],_mm256_xor_si256(c2[7834],_mm256_xor_si256(c2[9816],_mm256_xor_si256(c2[2291],_mm256_xor_si256(c2[12602],_mm256_xor_si256(c2[5480],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[9852],_mm256_xor_si256(c2[11434],_mm256_xor_si256(c2[3516],_mm256_xor_si256(c2[3926],_mm256_xor_si256(c2[4327],_mm256_xor_si256(c2[7095],_mm256_xor_si256(c2[2366],_mm256_xor_si256(c2[9489],c2[5133]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 25
d2[225]=_mm256_xor_si256(c2[5172],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[126],c2[9365])));
//row: 26
d2[234]=_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[72],c2[8594])));
//row: 27
d2[243]=_mm256_xor_si256(c2[5167],_mm256_xor_si256(c2[1693],c2[3314]));
//row: 28
d2[252]=_mm256_xor_si256(c2[7532],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[11038],c2[12259])));
//row: 29
d2[261]=_mm256_xor_si256(c2[11887],_mm256_xor_si256(c2[11886],_mm256_xor_si256(c2[5148],_mm256_xor_si256(c2[1987],_mm256_xor_si256(c2[2383],_mm256_xor_si256(c2[6757],_mm256_xor_si256(c2[7152],_mm256_xor_si256(c2[10715],_mm256_xor_si256(c2[11111],_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[2815],_mm256_xor_si256(c2[5190],_mm256_xor_si256(c2[2816],_mm256_xor_si256(c2[2041],_mm256_xor_si256(c2[4022],_mm256_xor_si256(c2[6396],_mm256_xor_si256(c2[6792],_mm256_xor_si256(c2[4428],_mm256_xor_si256(c2[6413],_mm256_xor_si256(c2[8788],_mm256_xor_si256(c2[9184],_mm256_xor_si256(c2[2474],_mm256_xor_si256(c2[4452],_mm256_xor_si256(c2[11978],_mm256_xor_si256(c2[6049],_mm256_xor_si256(c2[8431],_mm256_xor_si256(c2[11199],_mm256_xor_si256(c2[11595],_mm256_xor_si256(c2[9237],_mm256_xor_si256(c2[2114],_mm256_xor_si256(c2[5675],_mm256_xor_si256(c2[6071],_mm256_xor_si256(c2[8467],_mm256_xor_si256(c2[4107],_mm256_xor_si256(c2[6091],_mm256_xor_si256(c2[6487],_mm256_xor_si256(c2[3332],_mm256_xor_si256(c2[167],_mm256_xor_si256(c2[4519],_mm256_xor_si256(c2[10877],_mm256_xor_si256(c2[5725],_mm256_xor_si256(c2[7706],_mm256_xor_si256(c2[8102],_mm256_xor_si256(c2[12478],_mm256_xor_si256(c2[9706],_mm256_xor_si256(c2[4956],_mm256_xor_si256(c2[5352],_mm256_xor_si256(c2[1412],_mm256_xor_si256(c2[10513],_mm256_xor_si256(c2[1407],_mm256_xor_si256(c2[1803],_mm256_xor_si256(c2[12118],_mm256_xor_si256(c2[8553],_mm256_xor_si256(c2[5780],_mm256_xor_si256(c2[6176],_mm256_xor_si256(c2[7779],_mm256_xor_si256(c2[6596],_mm256_xor_si256(c2[11740],_mm256_xor_si256(c2[12136],_mm256_xor_si256(c2[8177],_mm256_xor_si256(c2[8198],_mm256_xor_si256(c2[1464],_mm256_xor_si256(c2[4627],_mm256_xor_si256(c2[10985],_mm256_xor_si256(c2[3858],_mm256_xor_si256(c2[11384],_mm256_xor_si256(c2[11780],_mm256_xor_si256(c2[12191],_mm256_xor_si256(c2[1502],_mm256_xor_si256(c2[6252],_mm256_xor_si256(c2[6648],_mm256_xor_si256(c2[4288],_mm256_xor_si256(c2[9828],_mm256_xor_si256(c2[4285],_mm256_xor_si256(c2[4681],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[1538],_mm256_xor_si256(c2[3120],_mm256_xor_si256(c2[7873],_mm256_xor_si256(c2[8283],_mm256_xor_si256(c2[8684],_mm256_xor_si256(c2[11056],_mm256_xor_si256(c2[11452],_mm256_xor_si256(c2[6714],_mm256_xor_si256(c2[1175],_mm256_xor_si256(c2[9094],c2[9490]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 30
d2[270]=_mm256_xor_si256(c2[399],_mm256_xor_si256(c2[398],_mm256_xor_si256(c2[5944],_mm256_xor_si256(c2[6340],_mm256_xor_si256(c2[3170],_mm256_xor_si256(c2[3566],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[7940],_mm256_xor_si256(c2[7939],_mm256_xor_si256(c2[8335],_mm256_xor_si256(c2[11898],_mm256_xor_si256(c2[12294],_mm256_xor_si256(c2[3998],_mm256_xor_si256(c2[6373],_mm256_xor_si256(c2[3603],_mm256_xor_si256(c2[3999],_mm256_xor_si256(c2[3224],_mm256_xor_si256(c2[5205],_mm256_xor_si256(c2[7579],_mm256_xor_si256(c2[7975],_mm256_xor_si256(c2[5620],_mm256_xor_si256(c2[7200],_mm256_xor_si256(c2[7596],_mm256_xor_si256(c2[9980],_mm256_xor_si256(c2[10376],_mm256_xor_si256(c2[3657],_mm256_xor_si256(c2[5635],_mm256_xor_si256(c2[94],_mm256_xor_si256(c2[490],_mm256_xor_si256(c2[7241],_mm256_xor_si256(c2[9218],_mm256_xor_si256(c2[9614],_mm256_xor_si256(c2[12391],_mm256_xor_si256(c2[116],_mm256_xor_si256(c2[10429],_mm256_xor_si256(c2[2901],_mm256_xor_si256(c2[3297],_mm256_xor_si256(c2[6858],_mm256_xor_si256(c2[7254],_mm256_xor_si256(c2[9650],_mm256_xor_si256(c2[4903],_mm256_xor_si256(c2[5299],_mm256_xor_si256(c2[7274],_mm256_xor_si256(c2[7670],_mm256_xor_si256(c2[4524],_mm256_xor_si256(c2[1350],_mm256_xor_si256(c2[5315],_mm256_xor_si256(c2[5711],_mm256_xor_si256(c2[12060],_mm256_xor_si256(c2[6521],_mm256_xor_si256(c2[6917],_mm256_xor_si256(c2[8898],_mm256_xor_si256(c2[9294],_mm256_xor_si256(c2[10478],_mm256_xor_si256(c2[990],_mm256_xor_si256(c2[10898],_mm256_xor_si256(c2[6139],_mm256_xor_si256(c2[6535],_mm256_xor_si256(c2[2595],_mm256_xor_si256(c2[11705],_mm256_xor_si256(c2[2599],_mm256_xor_si256(c2[2995],_mm256_xor_si256(c2[630],_mm256_xor_si256(c2[9349],_mm256_xor_si256(c2[9745],_mm256_xor_si256(c2[6972],_mm256_xor_si256(c2[7368],_mm256_xor_si256(c2[11329],_mm256_xor_si256(c2[8971],_mm256_xor_si256(c2[7383],_mm256_xor_si256(c2[7779],_mm256_xor_si256(c2[252],_mm256_xor_si256(c2[648],_mm256_xor_si256(c2[9381],_mm256_xor_si256(c2[2647],_mm256_xor_si256(c2[5423],_mm256_xor_si256(c2[5819],_mm256_xor_si256(c2[12168],_mm256_xor_si256(c2[5041],_mm256_xor_si256(c2[12567],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[703],_mm256_xor_si256(c2[2289],_mm256_xor_si256(c2[2685],_mm256_xor_si256(c2[7435],_mm256_xor_si256(c2[7831],_mm256_xor_si256(c2[5480],_mm256_xor_si256(c2[10624],_mm256_xor_si256(c2[11020],_mm256_xor_si256(c2[5477],_mm256_xor_si256(c2[5873],_mm256_xor_si256(c2[2721],_mm256_xor_si256(c2[4303],_mm256_xor_si256(c2[8660],_mm256_xor_si256(c2[9056],_mm256_xor_si256(c2[9475],_mm256_xor_si256(c2[9471],_mm256_xor_si256(c2[9867],_mm256_xor_si256(c2[12248],_mm256_xor_si256(c2[12644],_mm256_xor_si256(c2[7906],_mm256_xor_si256(c2[2358],_mm256_xor_si256(c2[10286],c2[10682])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 31
d2[279]=_mm256_xor_si256(c2[9902],_mm256_xor_si256(c2[2779],_mm256_xor_si256(c2[9901],_mm256_xor_si256(c2[2778],_mm256_xor_si256(c2[3172],_mm256_xor_si256(c2[8720],_mm256_xor_si256(c2[398],_mm256_xor_si256(c2[5550],_mm256_xor_si256(c2[5946],_mm256_xor_si256(c2[4772],_mm256_xor_si256(c2[10320],_mm256_xor_si256(c2[5167],_mm256_xor_si256(c2[10715],_mm256_xor_si256(c2[9126],_mm256_xor_si256(c2[1607],_mm256_xor_si256(c2[2003],_mm256_xor_si256(c2[6358],_mm256_xor_si256(c2[830],_mm256_xor_si256(c2[6378],_mm256_xor_si256(c2[3205],_mm256_xor_si256(c2[8753],_mm256_xor_si256(c2[831],_mm256_xor_si256(c2[6379],_mm256_xor_si256(c2[56],_mm256_xor_si256(c2[5604],_mm256_xor_si256(c2[2037],_mm256_xor_si256(c2[7585],_mm256_xor_si256(c2[4807],_mm256_xor_si256(c2[9959],_mm256_xor_si256(c2[10355],_mm256_xor_si256(c2[2452],_mm256_xor_si256(c2[8000],_mm256_xor_si256(c2[4428],_mm256_xor_si256(c2[9976],_mm256_xor_si256(c2[7208],_mm256_xor_si256(c2[12351],_mm256_xor_si256(c2[76],_mm256_xor_si256(c2[489],_mm256_xor_si256(c2[6037],_mm256_xor_si256(c2[2467],_mm256_xor_si256(c2[8015],_mm256_xor_si256(c2[9993],_mm256_xor_si256(c2[2870],_mm256_xor_si256(c2[4073],_mm256_xor_si256(c2[9612],_mm256_xor_si256(c2[6446],_mm256_xor_si256(c2[11994],_mm256_xor_si256(c2[9619],_mm256_xor_si256(c2[2091],_mm256_xor_si256(c2[2487],_mm256_xor_si256(c2[7261],_mm256_xor_si256(c2[129],_mm256_xor_si256(c2[129],_mm256_xor_si256(c2[5677],_mm256_xor_si256(c2[4086],_mm256_xor_si256(c2[9238],_mm256_xor_si256(c2[9634],_mm256_xor_si256(c2[6466],_mm256_xor_si256(c2[6482],_mm256_xor_si256(c2[12030],_mm256_xor_si256(c2[2131],_mm256_xor_si256(c2[7670],_mm256_xor_si256(c2[4502],_mm256_xor_si256(c2[9654],_mm256_xor_si256(c2[10050],_mm256_xor_si256(c2[1356],_mm256_xor_si256(c2[6895],_mm256_xor_si256(c2[10862],_mm256_xor_si256(c2[3730],_mm256_xor_si256(c2[2543],_mm256_xor_si256(c2[8082],_mm256_xor_si256(c2[8892],_mm256_xor_si256(c2[1769],_mm256_xor_si256(c2[3749],_mm256_xor_si256(c2[9288],_mm256_xor_si256(c2[6126],_mm256_xor_si256(c2[11269],_mm256_xor_si256(c2[11665],_mm256_xor_si256(c2[10502],_mm256_xor_si256(c2[3370],_mm256_xor_si256(c2[7730],_mm256_xor_si256(c2[598],_mm256_xor_si256(c2[3367],_mm256_xor_si256(c2[8519],_mm256_xor_si256(c2[8915],_mm256_xor_si256(c2[12098],_mm256_xor_si256(c2[4975],_mm256_xor_si256(c2[8537],_mm256_xor_si256(c2[1405],_mm256_xor_si256(c2[12498],_mm256_xor_si256(c2[4970],_mm256_xor_si256(c2[5366],_mm256_xor_si256(c2[10142],_mm256_xor_si256(c2[3010],_mm256_xor_si256(c2[6577],_mm256_xor_si256(c2[12116],_mm256_xor_si256(c2[4200],_mm256_xor_si256(c2[9343],_mm256_xor_si256(c2[9739],_mm256_xor_si256(c2[5803],_mm256_xor_si256(c2[11342],_mm256_xor_si256(c2[4611],_mm256_xor_si256(c2[10159],_mm256_xor_si256(c2[10160],_mm256_xor_si256(c2[2632],_mm256_xor_si256(c2[3028],_mm256_xor_si256(c2[6213],_mm256_xor_si256(c2[11761],_mm256_xor_si256(c2[12150],_mm256_xor_si256(c2[5027],_mm256_xor_si256(c2[2651],_mm256_xor_si256(c2[8190],_mm256_xor_si256(c2[9000],_mm256_xor_si256(c2[1877],_mm256_xor_si256(c2[1873],_mm256_xor_si256(c2[7421],_mm256_xor_si256(c2[9795],_mm256_xor_si256(c2[2276],_mm256_xor_si256(c2[2672],_mm256_xor_si256(c2[10206],_mm256_xor_si256(c2[3083],_mm256_xor_si256(c2[12188],_mm256_xor_si256(c2[5065],_mm256_xor_si256(c2[4663],_mm256_xor_si256(c2[9815],_mm256_xor_si256(c2[10211],_mm256_xor_si256(c2[2312],_mm256_xor_si256(c2[7851],_mm256_xor_si256(c2[7852],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[2705],_mm256_xor_si256(c2[7848],_mm256_xor_si256(c2[8244],_mm256_xor_si256(c2[12224],_mm256_xor_si256(c2[5101],_mm256_xor_si256(c2[1135],_mm256_xor_si256(c2[6683],_mm256_xor_si256(c2[5888],_mm256_xor_si256(c2[11436],_mm256_xor_si256(c2[6307],_mm256_xor_si256(c2[11846],_mm256_xor_si256(c2[6699],_mm256_xor_si256(c2[12247],_mm256_xor_si256(c2[9476],_mm256_xor_si256(c2[1948],_mm256_xor_si256(c2[2344],_mm256_xor_si256(c2[4738],_mm256_xor_si256(c2[10286],_mm256_xor_si256(c2[11870],_mm256_xor_si256(c2[4738],_mm256_xor_si256(c2[7514],_mm256_xor_si256(c2[12657],c2[382]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 32
d2[288]=_mm256_xor_si256(c2[8714],_mm256_xor_si256(c2[8713],_mm256_xor_si256(c2[1588],_mm256_xor_si256(c2[1984],_mm256_xor_si256(c2[11485],_mm256_xor_si256(c2[11881],_mm256_xor_si256(c2[0],_mm256_xor_si256(c2[3584],_mm256_xor_si256(c2[3583],_mm256_xor_si256(c2[3979],_mm256_xor_si256(c2[7542],_mm256_xor_si256(c2[7938],_mm256_xor_si256(c2[12313],_mm256_xor_si256(c2[2017],_mm256_xor_si256(c2[11918],_mm256_xor_si256(c2[12314],_mm256_xor_si256(c2[11539],_mm256_xor_si256(c2[849],_mm256_xor_si256(c2[3223],_mm256_xor_si256(c2[3619],_mm256_xor_si256(c2[1264],_mm256_xor_si256(c2[2844],_mm256_xor_si256(c2[3240],_mm256_xor_si256(c2[5624],_mm256_xor_si256(c2[6020],_mm256_xor_si256(c2[11972],_mm256_xor_si256(c2[1279],_mm256_xor_si256(c2[8409],_mm256_xor_si256(c2[8805],_mm256_xor_si256(c2[2885],_mm256_xor_si256(c2[4862],_mm256_xor_si256(c2[5258],_mm256_xor_si256(c2[8035],_mm256_xor_si256(c2[8431],_mm256_xor_si256(c2[6073],_mm256_xor_si256(c2[11216],_mm256_xor_si256(c2[11612],_mm256_xor_si256(c2[2502],_mm256_xor_si256(c2[2898],_mm256_xor_si256(c2[5294],_mm256_xor_si256(c2[547],_mm256_xor_si256(c2[943],_mm256_xor_si256(c2[2918],_mm256_xor_si256(c2[3314],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[9674],_mm256_xor_si256(c2[959],_mm256_xor_si256(c2[1355],_mm256_xor_si256(c2[7704],_mm256_xor_si256(c2[2165],_mm256_xor_si256(c2[2561],_mm256_xor_si256(c2[4542],_mm256_xor_si256(c2[4938],_mm256_xor_si256(c2[9314],_mm256_xor_si256(c2[6542],_mm256_xor_si256(c2[1783],_mm256_xor_si256(c2[2179],_mm256_xor_si256(c2[10910],_mm256_xor_si256(c2[7349],_mm256_xor_si256(c2[10914],_mm256_xor_si256(c2[11310],_mm256_xor_si256(c2[7746],_mm256_xor_si256(c2[8954],_mm256_xor_si256(c2[4993],_mm256_xor_si256(c2[5389],_mm256_xor_si256(c2[2616],_mm256_xor_si256(c2[3012],_mm256_xor_si256(c2[4615],_mm256_xor_si256(c2[3027],_mm256_xor_si256(c2[3423],_mm256_xor_si256(c2[8576],_mm256_xor_si256(c2[8972],_mm256_xor_si256(c2[1837],_mm256_xor_si256(c2[5025],_mm256_xor_si256(c2[10962],_mm256_xor_si256(c2[1067],_mm256_xor_si256(c2[1463],_mm256_xor_si256(c2[7812],_mm256_xor_si256(c2[685],_mm256_xor_si256(c2[8211],_mm256_xor_si256(c2[8607],_mm256_xor_si256(c2[9018],_mm256_xor_si256(c2[10604],_mm256_xor_si256(c2[11000],_mm256_xor_si256(c2[3079],_mm256_xor_si256(c2[3475],_mm256_xor_si256(c2[1124],_mm256_xor_si256(c2[6268],_mm256_xor_si256(c2[6664],_mm256_xor_si256(c2[1121],_mm256_xor_si256(c2[1517],_mm256_xor_si256(c2[11036],_mm256_xor_si256(c2[12618],_mm256_xor_si256(c2[4304],_mm256_xor_si256(c2[4700],_mm256_xor_si256(c2[5119],_mm256_xor_si256(c2[5115],_mm256_xor_si256(c2[5511],_mm256_xor_si256(c2[7892],_mm256_xor_si256(c2[8288],_mm256_xor_si256(c2[3550],_mm256_xor_si256(c2[10682],_mm256_xor_si256(c2[5930],c2[6326])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 33
d2[297]=_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[36],_mm256_xor_si256(c2[4952],c2[7506])));
//row: 34
d2[306]=_mm256_xor_si256(c2[1986],_mm256_xor_si256(c2[126],_mm256_xor_si256(c2[5025],c2[306])));
//row: 35
d2[315]=_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[3],_mm256_xor_si256(c2[5945],_mm256_xor_si256(c2[3171],_mm256_xor_si256(c2[7545],_mm256_xor_si256(c2[7940],_mm256_xor_si256(c2[11899],_mm256_xor_si256(c2[2796],_mm256_xor_si256(c2[3603],_mm256_xor_si256(c2[5978],_mm256_xor_si256(c2[3604],_mm256_xor_si256(c2[2829],_mm256_xor_si256(c2[4810],_mm256_xor_si256(c2[7580],_mm256_xor_si256(c2[5225],_mm256_xor_si256(c2[7201],_mm256_xor_si256(c2[9972],_mm256_xor_si256(c2[3262],_mm256_xor_si256(c2[5240],_mm256_xor_si256(c2[95],_mm256_xor_si256(c2[6846],_mm256_xor_si256(c2[9219],_mm256_xor_si256(c2[12392],_mm256_xor_si256(c2[8828],_mm256_xor_si256(c2[10034],_mm256_xor_si256(c2[2902],_mm256_xor_si256(c2[6859],_mm256_xor_si256(c2[9255],_mm256_xor_si256(c2[4904],_mm256_xor_si256(c2[7275],_mm256_xor_si256(c2[4129],_mm256_xor_si256(c2[955],_mm256_xor_si256(c2[5316],_mm256_xor_si256(c2[11665],_mm256_xor_si256(c2[6522],_mm256_xor_si256(c2[8899],_mm256_xor_si256(c2[595],_mm256_xor_si256(c2[10494],_mm256_xor_si256(c2[6140],_mm256_xor_si256(c2[2200],_mm256_xor_si256(c2[11310],_mm256_xor_si256(c2[2600],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[235],_mm256_xor_si256(c2[9350],_mm256_xor_si256(c2[6973],_mm256_xor_si256(c2[8576],_mm256_xor_si256(c2[7384],_mm256_xor_si256(c2[253],_mm256_xor_si256(c2[8986],_mm256_xor_si256(c2[2252],_mm256_xor_si256(c2[5424],_mm256_xor_si256(c2[11773],_mm256_xor_si256(c2[4646],_mm256_xor_si256(c2[12568],_mm256_xor_si256(c2[308],_mm256_xor_si256(c2[2290],_mm256_xor_si256(c2[7436],_mm256_xor_si256(c2[5076],_mm256_xor_si256(c2[10625],_mm256_xor_si256(c2[5478],_mm256_xor_si256(c2[2326],_mm256_xor_si256(c2[3908],_mm256_xor_si256(c2[8661],_mm256_xor_si256(c2[9080],_mm256_xor_si256(c2[9472],_mm256_xor_si256(c2[12240],_mm256_xor_si256(c2[7511],_mm256_xor_si256(c2[1963],c2[10278])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 36
d2[324]=_mm256_xor_si256(c2[9510],_mm256_xor_si256(c2[6588],_mm256_xor_si256(c2[270],c2[324])));
//row: 37
d2[333]=_mm256_xor_si256(c2[7530],_mm256_xor_si256(c2[7926],_mm256_xor_si256(c2[7925],_mm256_xor_si256(c2[1196],_mm256_xor_si256(c2[11093],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[2796],_mm256_xor_si256(c2[3191],_mm256_xor_si256(c2[7150],_mm256_xor_si256(c2[3188],_mm256_xor_si256(c2[11129],_mm256_xor_si256(c2[11525],_mm256_xor_si256(c2[1229],_mm256_xor_si256(c2[11526],_mm256_xor_si256(c2[10355],_mm256_xor_si256(c2[10751],_mm256_xor_si256(c2[61],_mm256_xor_si256(c2[2831],_mm256_xor_si256(c2[476],_mm256_xor_si256(c2[2452],_mm256_xor_si256(c2[5223],_mm256_xor_si256(c2[10788],_mm256_xor_si256(c2[11184],_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[8017],_mm256_xor_si256(c2[1692],_mm256_xor_si256(c2[2088],_mm256_xor_si256(c2[4470],_mm256_xor_si256(c2[7634],_mm256_xor_si256(c2[5276],_mm256_xor_si256(c2[10824],_mm256_xor_si256(c2[2110],_mm256_xor_si256(c2[4506],_mm256_xor_si256(c2[146],_mm256_xor_si256(c2[2526],_mm256_xor_si256(c2[11646],_mm256_xor_si256(c2[12042],_mm256_xor_si256(c2[8877],_mm256_xor_si256(c2[558],_mm256_xor_si256(c2[6520],_mm256_xor_si256(c2[6916],_mm256_xor_si256(c2[1764],_mm256_xor_si256(c2[4141],_mm256_xor_si256(c2[8121],_mm256_xor_si256(c2[8517],_mm256_xor_si256(c2[5745],_mm256_xor_si256(c2[1391],_mm256_xor_si256(c2[9726],_mm256_xor_si256(c2[10122],_mm256_xor_si256(c2[6552],_mm256_xor_si256(c2[10513],_mm256_xor_si256(c2[7761],_mm256_xor_si256(c2[8157],_mm256_xor_si256(c2[4592],_mm256_xor_si256(c2[2215],_mm256_xor_si256(c2[6574],_mm256_xor_si256(c2[3818],_mm256_xor_si256(c2[2635],_mm256_xor_si256(c2[8175],_mm256_xor_si256(c2[3841],_mm256_xor_si256(c2[4237],_mm256_xor_si256(c2[10174],_mm256_xor_si256(c2[666],_mm256_xor_si256(c2[6628],_mm256_xor_si256(c2[7024],_mm256_xor_si256(c2[12568],_mm256_xor_si256(c2[7819],_mm256_xor_si256(c2[8230],_mm256_xor_si256(c2[10212],_mm256_xor_si256(c2[2687],_mm256_xor_si256(c2[12602],_mm256_xor_si256(c2[327],_mm256_xor_si256(c2[5876],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[9852],_mm256_xor_si256(c2[10248],_mm256_xor_si256(c2[11830],_mm256_xor_si256(c2[3912],_mm256_xor_si256(c2[3926],_mm256_xor_si256(c2[4322],_mm256_xor_si256(c2[4723],_mm256_xor_si256(c2[7491],_mm256_xor_si256(c2[2366],_mm256_xor_si256(c2[2762],_mm256_xor_si256(c2[9885],c2[5529])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 38
d2[342]=_mm256_xor_si256(c2[11885],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[180],c2[216])));
//row: 39
d2[351]=_mm256_xor_si256(c2[9922],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[2111],c2[8661])));
//row: 40
d2[360]=_mm256_xor_si256(c2[9510],_mm256_xor_si256(c2[6484],c2[1098]));
//row: 41
d2[369]=_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[162],c2[9437])));
//row: 42
d2[378]=_mm256_xor_si256(c2[9115],_mm256_xor_si256(c2[9114],_mm256_xor_si256(c2[1980],_mm256_xor_si256(c2[2376],_mm256_xor_si256(c2[11886],_mm256_xor_si256(c2[12282],_mm256_xor_si256(c2[10692],_mm256_xor_si256(c2[3985],_mm256_xor_si256(c2[3984],_mm256_xor_si256(c2[4380],_mm256_xor_si256(c2[7943],_mm256_xor_si256(c2[8339],_mm256_xor_si256(c2[43],_mm256_xor_si256(c2[2418],_mm256_xor_si256(c2[12319],_mm256_xor_si256(c2[44],_mm256_xor_si256(c2[11940],_mm256_xor_si256(c2[1250],_mm256_xor_si256(c2[3624],_mm256_xor_si256(c2[4020],_mm256_xor_si256(c2[1656],_mm256_xor_si256(c2[3245],_mm256_xor_si256(c2[3641],_mm256_xor_si256(c2[6016],_mm256_xor_si256(c2[6412],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[12373],_mm256_xor_si256(c2[1680],_mm256_xor_si256(c2[8810],_mm256_xor_si256(c2[9206],_mm256_xor_si256(c2[3277],_mm256_xor_si256(c2[5263],_mm256_xor_si256(c2[5659],_mm256_xor_si256(c2[8427],_mm256_xor_si256(c2[8823],_mm256_xor_si256(c2[6465],_mm256_xor_si256(c2[11617],_mm256_xor_si256(c2[12013],_mm256_xor_si256(c2[2903],_mm256_xor_si256(c2[3299],_mm256_xor_si256(c2[5695],_mm256_xor_si256(c2[939],_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[3319],_mm256_xor_si256(c2[3715],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[10066],_mm256_xor_si256(c2[1351],_mm256_xor_si256(c2[1747],_mm256_xor_si256(c2[8105],_mm256_xor_si256(c2[2557],_mm256_xor_si256(c2[2953],_mm256_xor_si256(c2[4934],_mm256_xor_si256(c2[5330],_mm256_xor_si256(c2[9706],_mm256_xor_si256(c2[6934],_mm256_xor_si256(c2[2184],_mm256_xor_si256(c2[2580],_mm256_xor_si256(c2[11311],_mm256_xor_si256(c2[7741],_mm256_xor_si256(c2[11306],_mm256_xor_si256(c2[11702],_mm256_xor_si256(c2[9346],_mm256_xor_si256(c2[5385],_mm256_xor_si256(c2[5781],_mm256_xor_si256(c2[3008],_mm256_xor_si256(c2[3404],_mm256_xor_si256(c2[5007],_mm256_xor_si256(c2[3428],_mm256_xor_si256(c2[3824],_mm256_xor_si256(c2[8968],_mm256_xor_si256(c2[9364],_mm256_xor_si256(c2[5426],_mm256_xor_si256(c2[11363],_mm256_xor_si256(c2[1459],_mm256_xor_si256(c2[1855],_mm256_xor_si256(c2[8213],_mm256_xor_si256(c2[1086],_mm256_xor_si256(c2[8612],_mm256_xor_si256(c2[9008],_mm256_xor_si256(c2[9419],_mm256_xor_si256(c2[11005],_mm256_xor_si256(c2[11401],_mm256_xor_si256(c2[3480],_mm256_xor_si256(c2[3876],_mm256_xor_si256(c2[1516],_mm256_xor_si256(c2[6660],_mm256_xor_si256(c2[7056],_mm256_xor_si256(c2[1513],_mm256_xor_si256(c2[1909],_mm256_xor_si256(c2[11437],_mm256_xor_si256(c2[348],_mm256_xor_si256(c2[4705],_mm256_xor_si256(c2[5101],_mm256_xor_si256(c2[5511],_mm256_xor_si256(c2[5516],_mm256_xor_si256(c2[5912],_mm256_xor_si256(c2[8284],_mm256_xor_si256(c2[8680],_mm256_xor_si256(c2[3942],_mm256_xor_si256(c2[11074],_mm256_xor_si256(c2[6322],c2[6718]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 43
d2[387]=_mm256_xor_si256(c2[798],_mm256_xor_si256(c2[797],_mm256_xor_si256(c2[6739],_mm256_xor_si256(c2[3569],_mm256_xor_si256(c2[3965],_mm256_xor_si256(c2[8339],_mm256_xor_si256(c2[8734],_mm256_xor_si256(c2[12297],_mm256_xor_si256(c2[22],_mm256_xor_si256(c2[7939],_mm256_xor_si256(c2[4397],_mm256_xor_si256(c2[6772],_mm256_xor_si256(c2[4398],_mm256_xor_si256(c2[3623],_mm256_xor_si256(c2[5604],_mm256_xor_si256(c2[7978],_mm256_xor_si256(c2[8374],_mm256_xor_si256(c2[6019],_mm256_xor_si256(c2[7995],_mm256_xor_si256(c2[10370],_mm256_xor_si256(c2[10766],_mm256_xor_si256(c2[4056],_mm256_xor_si256(c2[6034],_mm256_xor_si256(c2[889],_mm256_xor_si256(c2[7640],_mm256_xor_si256(c2[10013],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[506],_mm256_xor_si256(c2[10819],_mm256_xor_si256(c2[3696],_mm256_xor_si256(c2[7257],_mm256_xor_si256(c2[7653],_mm256_xor_si256(c2[10049],_mm256_xor_si256(c2[5689],_mm256_xor_si256(c2[7673],_mm256_xor_si256(c2[8069],_mm256_xor_si256(c2[4914],_mm256_xor_si256(c2[1749],_mm256_xor_si256(c2[6110],_mm256_xor_si256(c2[12459],_mm256_xor_si256(c2[7316],_mm256_xor_si256(c2[9288],_mm256_xor_si256(c2[9684],_mm256_xor_si256(c2[1389],_mm256_xor_si256(c2[11288],_mm256_xor_si256(c2[6538],_mm256_xor_si256(c2[6934],_mm256_xor_si256(c2[2994],_mm256_xor_si256(c2[12104],_mm256_xor_si256(c2[2989],_mm256_xor_si256(c2[3385],_mm256_xor_si256(c2[1029],_mm256_xor_si256(c2[10135],_mm256_xor_si256(c2[7362],_mm256_xor_si256(c2[7758],_mm256_xor_si256(c2[9361],_mm256_xor_si256(c2[8178],_mm256_xor_si256(c2[651],_mm256_xor_si256(c2[1047],_mm256_xor_si256(c2[9780],_mm256_xor_si256(c2[3046],_mm256_xor_si256(c2[6218],_mm256_xor_si256(c2[12567],_mm256_xor_si256(c2[5440],_mm256_xor_si256(c2[295],_mm256_xor_si256(c2[691],_mm256_xor_si256(c2[7819],_mm256_xor_si256(c2[1102],_mm256_xor_si256(c2[3084],_mm256_xor_si256(c2[7834],_mm256_xor_si256(c2[8230],_mm256_xor_si256(c2[5870],_mm256_xor_si256(c2[11419],_mm256_xor_si256(c2[5876],_mm256_xor_si256(c2[6272],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[3120],_mm256_xor_si256(c2[4702],_mm256_xor_si256(c2[9455],_mm256_xor_si256(c2[9865],_mm256_xor_si256(c2[10266],_mm256_xor_si256(c2[12638],_mm256_xor_si256(c2[363],_mm256_xor_si256(c2[8305],_mm256_xor_si256(c2[2757],_mm256_xor_si256(c2[10676],c2[11072]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 44
d2[396]=_mm256_xor_si256(c2[4760],_mm256_xor_si256(c2[4759],_mm256_xor_si256(c2[10692],_mm256_xor_si256(c2[7927],_mm256_xor_si256(c2[7128],_mm256_xor_si256(c2[12301],_mm256_xor_si256(c2[25],_mm256_xor_si256(c2[3984],_mm256_xor_si256(c2[8359],_mm256_xor_si256(c2[10734],_mm256_xor_si256(c2[8360],_mm256_xor_si256(c2[7585],_mm256_xor_si256(c2[9566],_mm256_xor_si256(c2[12336],_mm256_xor_si256(c2[9972],_mm256_xor_si256(c2[11957],_mm256_xor_si256(c2[2057],_mm256_xor_si256(c2[8018],_mm256_xor_si256(c2[9996],_mm256_xor_si256(c2[4842],_mm256_xor_si256(c2[11593],_mm256_xor_si256(c2[1304],_mm256_xor_si256(c2[4468],_mm256_xor_si256(c2[2110],_mm256_xor_si256(c2[7658],_mm256_xor_si256(c2[11615],_mm256_xor_si256(c2[126],_mm256_xor_si256(c2[1340],_mm256_xor_si256(c2[9651],_mm256_xor_si256(c2[12031],_mm256_xor_si256(c2[8876],_mm256_xor_si256(c2[5711],_mm256_xor_si256(c2[10063],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[3750],_mm256_xor_si256(c2[11269],_mm256_xor_si256(c2[975],_mm256_xor_si256(c2[5351],_mm256_xor_si256(c2[2579],_mm256_xor_si256(c2[10896],_mm256_xor_si256(c2[6956],_mm256_xor_si256(c2[3386],_mm256_xor_si256(c2[7347],_mm256_xor_si256(c2[4991],_mm256_xor_si256(c2[1426],_mm256_xor_si256(c2[11720],_mm256_xor_si256(c2[652],_mm256_xor_si256(c2[12140],_mm256_xor_si256(c2[5009],_mm256_xor_si256(c2[1062],_mm256_xor_si256(c2[7008],_mm256_xor_si256(c2[10171],_mm256_xor_si256(c2[3858],_mm256_xor_si256(c2[9402],_mm256_xor_si256(c2[4644],_mm256_xor_si256(c2[5064],_mm256_xor_si256(c2[7046],_mm256_xor_si256(c2[12192],_mm256_xor_si256(c2[9832],_mm256_xor_si256(c2[2701],_mm256_xor_si256(c2[10225],_mm256_xor_si256(c2[7082],_mm256_xor_si256(c2[8664],_mm256_xor_si256(c2[746],_mm256_xor_si256(c2[1156],_mm256_xor_si256(c2[1548],_mm256_xor_si256(c2[4325],_mm256_xor_si256(c2[12258],_mm256_xor_si256(c2[6719],c2[2363])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 45
d2[405]=_mm256_xor_si256(c2[3191],_mm256_xor_si256(c2[108],c2[6520]));
}
}
#include "PHY/sse_intrin.h"
// generated code for Zc=320, byte encoding
static inline void ldpc320_byte(uint8_t *c,uint8_t *d) {
__m256i *csimd=(__m256i *)c,*dsimd=(__m256i *)d;
__m256i *c2,*d2;
int i2;
for (i2=0; i2<10; i2++) {
c2=&csimd[i2];
d2=&dsimd[i2];
//row: 0
d2[0]=_mm256_xor_si256(c2[3962],_mm256_xor_si256(c2[6609],_mm256_xor_si256(c2[1762],_mm256_xor_si256(c2[12326],_mm256_xor_si256(c2[6620],_mm256_xor_si256(c2[3100],_mm256_xor_si256(c2[7066],_mm256_xor_si256(c2[3123],_mm256_xor_si256(c2[2689],_mm256_xor_si256(c2[7082],_mm256_xor_si256(c2[7541],_mm256_xor_si256(c2[11940],_mm256_xor_si256(c2[13260],_mm256_xor_si256(c2[2288],_mm256_xor_si256(c2[10648],_mm256_xor_si256(c2[2286],_mm256_xor_si256(c2[7147],_mm256_xor_si256(c2[545],_mm256_xor_si256(c2[2741],_mm256_xor_si256(c2[3201],_mm256_xor_si256(c2[1447],_mm256_xor_si256(c2[12881],_mm256_xor_si256(c2[2344],_mm256_xor_si256(c2[4546],_mm256_xor_si256(c2[6745],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[3686],_mm256_xor_si256(c2[6762],_mm256_xor_si256(c2[6780],_mm256_xor_si256(c2[7222],_mm256_xor_si256(c2[3262],_mm256_xor_si256(c2[1085],_mm256_xor_si256(c2[4603],_mm256_xor_si256(c2[11208],_mm256_xor_si256(c2[10346],_mm256_xor_si256(c2[664],_mm256_xor_si256(c2[6829],_mm256_xor_si256(c2[2005],_mm256_xor_si256(c2[5529],_mm256_xor_si256(c2[13007],_mm256_xor_si256(c2[2464],_mm256_xor_si256(c2[3349],_mm256_xor_si256(c2[2025],_mm256_xor_si256(c2[5562],_mm256_xor_si256(c2[12168],_mm256_xor_si256(c2[9521],_mm256_xor_si256(c2[4709],_mm256_xor_si256(c2[4708],_mm256_xor_si256(c2[6029],_mm256_xor_si256(c2[6483],_mm256_xor_si256(c2[3842],_mm256_xor_si256(c2[5601],_mm256_xor_si256(c2[8702],_mm256_xor_si256(c2[10905],_mm256_xor_si256(c2[12660],_mm256_xor_si256(c2[7843],_mm256_xor_si256(c2[10047],_mm256_xor_si256(c2[6082],_mm256_xor_si256(c2[7420],_mm256_xor_si256(c2[2148],_mm256_xor_si256(c2[3027],_mm256_xor_si256(c2[13165],_mm256_xor_si256(c2[9208],_mm256_xor_si256(c2[14049],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[6149],c2[2182]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 1
d2[10]=_mm256_xor_si256(c2[3962],_mm256_xor_si256(c2[4402],_mm256_xor_si256(c2[7049],_mm256_xor_si256(c2[2202],_mm256_xor_si256(c2[12766],_mm256_xor_si256(c2[6620],_mm256_xor_si256(c2[7060],_mm256_xor_si256(c2[3540],_mm256_xor_si256(c2[7506],_mm256_xor_si256(c2[3123],_mm256_xor_si256(c2[3563],_mm256_xor_si256(c2[3129],_mm256_xor_si256(c2[7522],_mm256_xor_si256(c2[7541],_mm256_xor_si256(c2[7981],_mm256_xor_si256(c2[12380],_mm256_xor_si256(c2[13700],_mm256_xor_si256(c2[2728],_mm256_xor_si256(c2[11088],_mm256_xor_si256(c2[2726],_mm256_xor_si256(c2[7147],_mm256_xor_si256(c2[7587],_mm256_xor_si256(c2[985],_mm256_xor_si256(c2[3181],_mm256_xor_si256(c2[3201],_mm256_xor_si256(c2[3641],_mm256_xor_si256(c2[1887],_mm256_xor_si256(c2[13321],_mm256_xor_si256(c2[2784],_mm256_xor_si256(c2[4986],_mm256_xor_si256(c2[7185],_mm256_xor_si256(c2[2360],_mm256_xor_si256(c2[4126],_mm256_xor_si256(c2[7202],_mm256_xor_si256(c2[6780],_mm256_xor_si256(c2[7220],_mm256_xor_si256(c2[7662],_mm256_xor_si256(c2[3702],_mm256_xor_si256(c2[1085],_mm256_xor_si256(c2[1525],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[11648],_mm256_xor_si256(c2[10346],_mm256_xor_si256(c2[10786],_mm256_xor_si256(c2[1104],_mm256_xor_si256(c2[7269],_mm256_xor_si256(c2[2005],_mm256_xor_si256(c2[2445],_mm256_xor_si256(c2[5969],_mm256_xor_si256(c2[13447],_mm256_xor_si256(c2[2464],_mm256_xor_si256(c2[2904],_mm256_xor_si256(c2[3789],_mm256_xor_si256(c2[2465],_mm256_xor_si256(c2[6002],_mm256_xor_si256(c2[12608],_mm256_xor_si256(c2[9961],_mm256_xor_si256(c2[4709],_mm256_xor_si256(c2[5149],_mm256_xor_si256(c2[5148],_mm256_xor_si256(c2[6469],_mm256_xor_si256(c2[6483],_mm256_xor_si256(c2[6923],_mm256_xor_si256(c2[4282],_mm256_xor_si256(c2[6041],_mm256_xor_si256(c2[9142],_mm256_xor_si256(c2[11345],_mm256_xor_si256(c2[13100],_mm256_xor_si256(c2[7843],_mm256_xor_si256(c2[8283],_mm256_xor_si256(c2[10487],_mm256_xor_si256(c2[6522],_mm256_xor_si256(c2[7420],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[2588],_mm256_xor_si256(c2[3467],_mm256_xor_si256(c2[13165],_mm256_xor_si256(c2[13605],_mm256_xor_si256(c2[9648],_mm256_xor_si256(c2[400],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[861],_mm256_xor_si256(c2[6589],c2[2622])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 2
d2[20]=_mm256_xor_si256(c2[4402],_mm256_xor_si256(c2[7049],_mm256_xor_si256(c2[1762],_mm256_xor_si256(c2[2202],_mm256_xor_si256(c2[12326],_mm256_xor_si256(c2[12766],_mm256_xor_si256(c2[7060],_mm256_xor_si256(c2[3100],_mm256_xor_si256(c2[3540],_mm256_xor_si256(c2[7066],_mm256_xor_si256(c2[7506],_mm256_xor_si256(c2[3563],_mm256_xor_si256(c2[3129],_mm256_xor_si256(c2[7082],_mm256_xor_si256(c2[7522],_mm256_xor_si256(c2[7981],_mm256_xor_si256(c2[12380],_mm256_xor_si256(c2[13260],_mm256_xor_si256(c2[13700],_mm256_xor_si256(c2[2728],_mm256_xor_si256(c2[10648],_mm256_xor_si256(c2[11088],_mm256_xor_si256(c2[2286],_mm256_xor_si256(c2[2726],_mm256_xor_si256(c2[7587],_mm256_xor_si256(c2[985],_mm256_xor_si256(c2[2741],_mm256_xor_si256(c2[3181],_mm256_xor_si256(c2[3641],_mm256_xor_si256(c2[1447],_mm256_xor_si256(c2[1887],_mm256_xor_si256(c2[12881],_mm256_xor_si256(c2[13321],_mm256_xor_si256(c2[2784],_mm256_xor_si256(c2[4546],_mm256_xor_si256(c2[4986],_mm256_xor_si256(c2[6745],_mm256_xor_si256(c2[7185],_mm256_xor_si256(c2[2360],_mm256_xor_si256(c2[3686],_mm256_xor_si256(c2[4126],_mm256_xor_si256(c2[6762],_mm256_xor_si256(c2[7202],_mm256_xor_si256(c2[7220],_mm256_xor_si256(c2[7662],_mm256_xor_si256(c2[3262],_mm256_xor_si256(c2[3702],_mm256_xor_si256(c2[1525],_mm256_xor_si256(c2[4603],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[11208],_mm256_xor_si256(c2[11648],_mm256_xor_si256(c2[10786],_mm256_xor_si256(c2[1104],_mm256_xor_si256(c2[6829],_mm256_xor_si256(c2[7269],_mm256_xor_si256(c2[2445],_mm256_xor_si256(c2[5969],_mm256_xor_si256(c2[13007],_mm256_xor_si256(c2[13447],_mm256_xor_si256(c2[2904],_mm256_xor_si256(c2[3349],_mm256_xor_si256(c2[3789],_mm256_xor_si256(c2[2025],_mm256_xor_si256(c2[2465],_mm256_xor_si256(c2[6002],_mm256_xor_si256(c2[12168],_mm256_xor_si256(c2[12608],_mm256_xor_si256(c2[9521],_mm256_xor_si256(c2[9961],_mm256_xor_si256(c2[5149],_mm256_xor_si256(c2[5148],_mm256_xor_si256(c2[6029],_mm256_xor_si256(c2[6469],_mm256_xor_si256(c2[6923],_mm256_xor_si256(c2[4282],_mm256_xor_si256(c2[5601],_mm256_xor_si256(c2[6041],_mm256_xor_si256(c2[9142],_mm256_xor_si256(c2[10905],_mm256_xor_si256(c2[11345],_mm256_xor_si256(c2[12660],_mm256_xor_si256(c2[13100],_mm256_xor_si256(c2[8283],_mm256_xor_si256(c2[10047],_mm256_xor_si256(c2[10487],_mm256_xor_si256(c2[6082],_mm256_xor_si256(c2[6522],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[2588],_mm256_xor_si256(c2[3027],_mm256_xor_si256(c2[3467],_mm256_xor_si256(c2[13605],_mm256_xor_si256(c2[9208],_mm256_xor_si256(c2[9648],_mm256_xor_si256(c2[14049],_mm256_xor_si256(c2[400],_mm256_xor_si256(c2[861],_mm256_xor_si256(c2[6589],_mm256_xor_si256(c2[2182],c2[2622]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 3
d2[30]=_mm256_xor_si256(c2[4402],_mm256_xor_si256(c2[7049],_mm256_xor_si256(c2[2202],_mm256_xor_si256(c2[12326],_mm256_xor_si256(c2[12766],_mm256_xor_si256(c2[7060],_mm256_xor_si256(c2[3540],_mm256_xor_si256(c2[7066],_mm256_xor_si256(c2[7506],_mm256_xor_si256(c2[3563],_mm256_xor_si256(c2[3129],_mm256_xor_si256(c2[7522],_mm256_xor_si256(c2[7981],_mm256_xor_si256(c2[12380],_mm256_xor_si256(c2[13260],_mm256_xor_si256(c2[13700],_mm256_xor_si256(c2[2728],_mm256_xor_si256(c2[11088],_mm256_xor_si256(c2[2286],_mm256_xor_si256(c2[2726],_mm256_xor_si256(c2[7587],_mm256_xor_si256(c2[985],_mm256_xor_si256(c2[3181],_mm256_xor_si256(c2[3641],_mm256_xor_si256(c2[1887],_mm256_xor_si256(c2[12881],_mm256_xor_si256(c2[13321],_mm256_xor_si256(c2[2784],_mm256_xor_si256(c2[4986],_mm256_xor_si256(c2[6745],_mm256_xor_si256(c2[7185],_mm256_xor_si256(c2[2360],_mm256_xor_si256(c2[4126],_mm256_xor_si256(c2[6762],_mm256_xor_si256(c2[7202],_mm256_xor_si256(c2[7220],_mm256_xor_si256(c2[7662],_mm256_xor_si256(c2[3702],_mm256_xor_si256(c2[1525],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[11208],_mm256_xor_si256(c2[11648],_mm256_xor_si256(c2[10786],_mm256_xor_si256(c2[1104],_mm256_xor_si256(c2[6829],_mm256_xor_si256(c2[7269],_mm256_xor_si256(c2[2445],_mm256_xor_si256(c2[5969],_mm256_xor_si256(c2[13007],_mm256_xor_si256(c2[13447],_mm256_xor_si256(c2[2904],_mm256_xor_si256(c2[3789],_mm256_xor_si256(c2[2025],_mm256_xor_si256(c2[2465],_mm256_xor_si256(c2[6002],_mm256_xor_si256(c2[12608],_mm256_xor_si256(c2[9521],_mm256_xor_si256(c2[9961],_mm256_xor_si256(c2[5149],_mm256_xor_si256(c2[5148],_mm256_xor_si256(c2[6469],_mm256_xor_si256(c2[6923],_mm256_xor_si256(c2[4282],_mm256_xor_si256(c2[5601],_mm256_xor_si256(c2[6041],_mm256_xor_si256(c2[9142],_mm256_xor_si256(c2[11345],_mm256_xor_si256(c2[12660],_mm256_xor_si256(c2[13100],_mm256_xor_si256(c2[8283],_mm256_xor_si256(c2[10487],_mm256_xor_si256(c2[6082],_mm256_xor_si256(c2[6522],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[2588],_mm256_xor_si256(c2[3467],_mm256_xor_si256(c2[13605],_mm256_xor_si256(c2[9648],_mm256_xor_si256(c2[14049],_mm256_xor_si256(c2[400],_mm256_xor_si256(c2[861],_mm256_xor_si256(c2[6589],_mm256_xor_si256(c2[2182],c2[2622])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 4
d2[40]=_mm256_xor_si256(c2[3967],c2[5746]);
//row: 5
d2[50]=_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[2648],_mm256_xor_si256(c2[11880],_mm256_xor_si256(c2[8365],_mm256_xor_si256(c2[8362],_mm256_xor_si256(c2[2669],_mm256_xor_si256(c2[13228],_mm256_xor_si256(c2[3105],_mm256_xor_si256(c2[1789],_mm256_xor_si256(c2[13241],_mm256_xor_si256(c2[12807],_mm256_xor_si256(c2[3121],_mm256_xor_si256(c2[3580],_mm256_xor_si256(c2[7989],_mm256_xor_si256(c2[9309],_mm256_xor_si256(c2[7981],_mm256_xor_si256(c2[12406],_mm256_xor_si256(c2[6687],_mm256_xor_si256(c2[12404],_mm256_xor_si256(c2[3186],_mm256_xor_si256(c2[10663],_mm256_xor_si256(c2[12869],_mm256_xor_si256(c2[13329],_mm256_xor_si256(c2[11565],_mm256_xor_si256(c2[8920],_mm256_xor_si256(c2[12462],_mm256_xor_si256(c2[585],_mm256_xor_si256(c2[2784],_mm256_xor_si256(c2[12048],_mm256_xor_si256(c2[13804],_mm256_xor_si256(c2[2801],_mm256_xor_si256(c2[2829],_mm256_xor_si256(c2[3261],_mm256_xor_si256(c2[13380],_mm256_xor_si256(c2[11203],_mm256_xor_si256(c2[642],_mm256_xor_si256(c2[7247],_mm256_xor_si256(c2[6385],_mm256_xor_si256(c2[10782],_mm256_xor_si256(c2[2868],_mm256_xor_si256(c2[12123],_mm256_xor_si256(c2[1568],_mm256_xor_si256(c2[9046],_mm256_xor_si256(c2[13449],_mm256_xor_si256(c2[12582],_mm256_xor_si256(c2[13467],_mm256_xor_si256(c2[12143],_mm256_xor_si256(c2[1601],_mm256_xor_si256(c2[8207],_mm256_xor_si256(c2[5560],_mm256_xor_si256(c2[748],_mm256_xor_si256(c2[747],_mm256_xor_si256(c2[2068],_mm256_xor_si256(c2[2522],_mm256_xor_si256(c2[13960],_mm256_xor_si256(c2[1640],_mm256_xor_si256(c2[4286],_mm256_xor_si256(c2[4741],_mm256_xor_si256(c2[6944],_mm256_xor_si256(c2[8709],_mm256_xor_si256(c2[3882],_mm256_xor_si256(c2[6086],_mm256_xor_si256(c2[2121],_mm256_xor_si256(c2[3469],_mm256_xor_si256(c2[12266],_mm256_xor_si256(c2[13145],_mm256_xor_si256(c2[9204],_mm256_xor_si256(c2[5247],_mm256_xor_si256(c2[10088],_mm256_xor_si256(c2[10549],_mm256_xor_si256(c2[2188],_mm256_xor_si256(c2[12300],c2[5268]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 6
d2[60]=_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[9360],_mm256_xor_si256(c2[2409],_mm256_xor_si256(c2[5940],_mm256_xor_si256(c2[3787],_mm256_xor_si256(c2[6509],_mm256_xor_si256(c2[4764],c2[5247])))))));
//row: 7
d2[70]=_mm256_xor_si256(c2[5280],_mm256_xor_si256(c2[10582],_mm256_xor_si256(c2[6686],_mm256_xor_si256(c2[8061],_mm256_xor_si256(c2[11160],c2[5562])))));
//row: 8
d2[80]=_mm256_xor_si256(c2[13209],_mm256_xor_si256(c2[1767],_mm256_xor_si256(c2[1767],_mm256_xor_si256(c2[4404],_mm256_xor_si256(c2[11009],_mm256_xor_si256(c2[13206],_mm256_xor_si256(c2[13646],_mm256_xor_si256(c2[7484],_mm256_xor_si256(c2[9681],_mm256_xor_si256(c2[10121],_mm256_xor_si256(c2[3089],_mm256_xor_si256(c2[1788],_mm256_xor_si256(c2[4425],_mm256_xor_si256(c2[12347],_mm256_xor_si256(c2[465],_mm256_xor_si256(c2[905],_mm256_xor_si256(c2[2224],_mm256_xor_si256(c2[4421],_mm256_xor_si256(c2[4861],_mm256_xor_si256(c2[2224],_mm256_xor_si256(c2[12360],_mm256_xor_si256(c2[928],_mm256_xor_si256(c2[11926],_mm256_xor_si256(c2[484],_mm256_xor_si256(c2[2240],_mm256_xor_si256(c2[4447],_mm256_xor_si256(c2[4887],_mm256_xor_si256(c2[2709],_mm256_xor_si256(c2[5346],_mm256_xor_si256(c2[7108],_mm256_xor_si256(c2[9745],_mm256_xor_si256(c2[8428],_mm256_xor_si256(c2[10625],_mm256_xor_si256(c2[11065],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[11525],_mm256_xor_si256(c2[83],_mm256_xor_si256(c2[5806],_mm256_xor_si256(c2[8003],_mm256_xor_si256(c2[8443],_mm256_xor_si256(c2[11523],_mm256_xor_si256(c2[13720],_mm256_xor_si256(c2[81],_mm256_xor_si256(c2[2305],_mm256_xor_si256(c2[4942],_mm256_xor_si256(c2[9782],_mm256_xor_si256(c2[12429],_mm256_xor_si256(c2[11988],_mm256_xor_si256(c2[106],_mm256_xor_si256(c2[546],_mm256_xor_si256(c2[12448],_mm256_xor_si256(c2[1006],_mm256_xor_si256(c2[10684],_mm256_xor_si256(c2[12881],_mm256_xor_si256(c2[13321],_mm256_xor_si256(c2[8049],_mm256_xor_si256(c2[10246],_mm256_xor_si256(c2[10686],_mm256_xor_si256(c2[11581],_mm256_xor_si256(c2[149],_mm256_xor_si256(c2[13783],_mm256_xor_si256(c2[1901],_mm256_xor_si256(c2[2341],_mm256_xor_si256(c2[1903],_mm256_xor_si256(c2[4100],_mm256_xor_si256(c2[4540],_mm256_xor_si256(c2[11167],_mm256_xor_si256(c2[13804],_mm256_xor_si256(c2[12923],_mm256_xor_si256(c2[1041],_mm256_xor_si256(c2[1481],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[4127],_mm256_xor_si256(c2[4567],_mm256_xor_si256(c2[1948],_mm256_xor_si256(c2[4585],_mm256_xor_si256(c2[2380],_mm256_xor_si256(c2[5027],_mm256_xor_si256(c2[12509],_mm256_xor_si256(c2[627],_mm256_xor_si256(c2[1067],_mm256_xor_si256(c2[10322],_mm256_xor_si256(c2[12969],_mm256_xor_si256(c2[13840],_mm256_xor_si256(c2[1968],_mm256_xor_si256(c2[2408],_mm256_xor_si256(c2[6366],_mm256_xor_si256(c2[8563],_mm256_xor_si256(c2[9003],_mm256_xor_si256(c2[5504],_mm256_xor_si256(c2[8141],_mm256_xor_si256(c2[9901],_mm256_xor_si256(c2[12548],_mm256_xor_si256(c2[1987],_mm256_xor_si256(c2[4184],_mm256_xor_si256(c2[4624],_mm256_xor_si256(c2[11242],_mm256_xor_si256(c2[13889],_mm256_xor_si256(c2[687],_mm256_xor_si256(c2[3324],_mm256_xor_si256(c2[8165],_mm256_xor_si256(c2[10362],_mm256_xor_si256(c2[10802],_mm256_xor_si256(c2[3327],_mm256_xor_si256(c2[11701],_mm256_xor_si256(c2[269],_mm256_xor_si256(c2[12586],_mm256_xor_si256(c2[704],_mm256_xor_si256(c2[1144],_mm256_xor_si256(c2[11262],_mm256_xor_si256(c2[13469],_mm256_xor_si256(c2[13909],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[3367],_mm256_xor_si256(c2[7326],_mm256_xor_si256(c2[9523],_mm256_xor_si256(c2[9963],_mm256_xor_si256(c2[4689],_mm256_xor_si256(c2[6886],_mm256_xor_si256(c2[7326],_mm256_xor_si256(c2[13946],_mm256_xor_si256(c2[2504],_mm256_xor_si256(c2[13945],_mm256_xor_si256(c2[2503],_mm256_xor_si256(c2[1187],_mm256_xor_si256(c2[3384],_mm256_xor_si256(c2[3824],_mm256_xor_si256(c2[1641],_mm256_xor_si256(c2[4288],_mm256_xor_si256(c2[13089],_mm256_xor_si256(c2[1647],_mm256_xor_si256(c2[769],_mm256_xor_si256(c2[2966],_mm256_xor_si256(c2[3406],_mm256_xor_si256(c2[3849],_mm256_xor_si256(c2[3860],_mm256_xor_si256(c2[6507],_mm256_xor_si256(c2[6063],_mm256_xor_si256(c2[8260],_mm256_xor_si256(c2[8700],_mm256_xor_si256(c2[7828],_mm256_xor_si256(c2[10025],_mm256_xor_si256(c2[10465],_mm256_xor_si256(c2[3001],_mm256_xor_si256(c2[5648],_mm256_xor_si256(c2[5205],_mm256_xor_si256(c2[7402],_mm256_xor_si256(c2[7842],_mm256_xor_si256(c2[1240],_mm256_xor_si256(c2[3447],_mm256_xor_si256(c2[3887],_mm256_xor_si256(c2[2588],_mm256_xor_si256(c2[5225],_mm256_xor_si256(c2[11385],_mm256_xor_si256(c2[14022],_mm256_xor_si256(c2[12264],_mm256_xor_si256(c2[382],_mm256_xor_si256(c2[822],_mm256_xor_si256(c2[6543],_mm256_xor_si256(c2[8323],_mm256_xor_si256(c2[10960],_mm256_xor_si256(c2[4366],_mm256_xor_si256(c2[6563],_mm256_xor_si256(c2[7003],_mm256_xor_si256(c2[9207],_mm256_xor_si256(c2[11404],_mm256_xor_si256(c2[11844],_mm256_xor_si256(c2[9668],_mm256_xor_si256(c2[12305],_mm256_xor_si256(c2[1307],_mm256_xor_si256(c2[3944],_mm256_xor_si256(c2[11429],_mm256_xor_si256(c2[13626],_mm256_xor_si256(c2[14066],c2[6148]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 9
d2[90]=_mm256_xor_si256(c2[12765],_mm256_xor_si256(c2[8827],_mm256_xor_si256(c2[1961],_mm256_xor_si256(c2[13428],_mm256_xor_si256(c2[10384],_mm256_xor_si256(c2[5188],_mm256_xor_si256(c2[3444],c2[7886])))))));
//row: 10
d2[100]=_mm256_xor_si256(c2[6180],_mm256_xor_si256(c2[7082],_mm256_xor_si256(c2[8446],_mm256_xor_si256(c2[4982],_mm256_xor_si256(c2[605],c2[10409])))));
//row: 11
d2[110]=_mm256_xor_si256(c2[8803],_mm256_xor_si256(c2[441],_mm256_xor_si256(c2[881],_mm256_xor_si256(c2[11440],_mm256_xor_si256(c2[3528],_mm256_xor_si256(c2[6603],_mm256_xor_si256(c2[12760],_mm256_xor_si256(c2[3088],_mm256_xor_si256(c2[9245],_mm256_xor_si256(c2[7040],_mm256_xor_si256(c2[11461],_mm256_xor_si256(c2[3109],_mm256_xor_si256(c2[3549],_mm256_xor_si256(c2[7941],_mm256_xor_si256(c2[29],_mm256_xor_si256(c2[11907],_mm256_xor_si256(c2[3985],_mm256_xor_si256(c2[8384],_mm256_xor_si256(c2[7964],_mm256_xor_si256(c2[13681],_mm256_xor_si256(c2[42],_mm256_xor_si256(c2[7520],_mm256_xor_si256(c2[13687],_mm256_xor_si256(c2[11923],_mm256_xor_si256(c2[4001],_mm256_xor_si256(c2[12382],_mm256_xor_si256(c2[4020],_mm256_xor_si256(c2[4460],_mm256_xor_si256(c2[2702],_mm256_xor_si256(c2[8869],_mm256_xor_si256(c2[4022],_mm256_xor_si256(c2[10189],_mm256_xor_si256(c2[7129],_mm256_xor_si256(c2[13286],_mm256_xor_si256(c2[1400],_mm256_xor_si256(c2[7567],_mm256_xor_si256(c2[7127],_mm256_xor_si256(c2[13284],_mm256_xor_si256(c2[11988],_mm256_xor_si256(c2[3626],_mm256_xor_si256(c2[4066],_mm256_xor_si256(c2[5386],_mm256_xor_si256(c2[11543],_mm256_xor_si256(c2[7582],_mm256_xor_si256(c2[13749],_mm256_xor_si256(c2[8042],_mm256_xor_si256(c2[13769],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[6288],_mm256_xor_si256(c2[12445],_mm256_xor_si256(c2[3643],_mm256_xor_si256(c2[9800],_mm256_xor_si256(c2[7185],_mm256_xor_si256(c2[13342],_mm256_xor_si256(c2[9387],_mm256_xor_si256(c2[1465],_mm256_xor_si256(c2[11586],_mm256_xor_si256(c2[3664],_mm256_xor_si256(c2[6761],_mm256_xor_si256(c2[12928],_mm256_xor_si256(c2[8527],_mm256_xor_si256(c2[605],_mm256_xor_si256(c2[11603],_mm256_xor_si256(c2[3681],_mm256_xor_si256(c2[11621],_mm256_xor_si256(c2[3269],_mm256_xor_si256(c2[3709],_mm256_xor_si256(c2[12063],_mm256_xor_si256(c2[4141],_mm256_xor_si256(c2[8103],_mm256_xor_si256(c2[181],_mm256_xor_si256(c2[5926],_mm256_xor_si256(c2[11643],_mm256_xor_si256(c2[12083],_mm256_xor_si256(c2[9444],_mm256_xor_si256(c2[1522],_mm256_xor_si256(c2[1960],_mm256_xor_si256(c2[8127],_mm256_xor_si256(c2[1108],_mm256_xor_si256(c2[6825],_mm256_xor_si256(c2[7265],_mm256_xor_si256(c2[5505],_mm256_xor_si256(c2[11662],_mm256_xor_si256(c2[11660],_mm256_xor_si256(c2[3748],_mm256_xor_si256(c2[6846],_mm256_xor_si256(c2[12563],_mm256_xor_si256(c2[13003],_mm256_xor_si256(c2[10360],_mm256_xor_si256(c2[2448],_mm256_xor_si256(c2[3769],_mm256_xor_si256(c2[9926],_mm256_xor_si256(c2[1129],_mm256_xor_si256(c2[7305],_mm256_xor_si256(c2[13022],_mm256_xor_si256(c2[13462],_mm256_xor_si256(c2[8180],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[6866],_mm256_xor_si256(c2[13023],_mm256_xor_si256(c2[10403],_mm256_xor_si256(c2[2481],_mm256_xor_si256(c2[2920],_mm256_xor_si256(c2[9087],_mm256_xor_si256(c2[283],_mm256_xor_si256(c2[6440],_mm256_xor_si256(c2[9540],_mm256_xor_si256(c2[1188],_mm256_xor_si256(c2[1628],_mm256_xor_si256(c2[9549],_mm256_xor_si256(c2[1627],_mm256_xor_si256(c2[10860],_mm256_xor_si256(c2[2948],_mm256_xor_si256(c2[11324],_mm256_xor_si256(c2[2962],_mm256_xor_si256(c2[3402],_mm256_xor_si256(c2[8683],_mm256_xor_si256(c2[761],_mm256_xor_si256(c2[10442],_mm256_xor_si256(c2[2520],_mm256_xor_si256(c2[769],_mm256_xor_si256(c2[13543],_mm256_xor_si256(c2[5621],_mm256_xor_si256(c2[1667],_mm256_xor_si256(c2[7824],_mm256_xor_si256(c2[3422],_mm256_xor_si256(c2[9589],_mm256_xor_si256(c2[12684],_mm256_xor_si256(c2[4322],_mm256_xor_si256(c2[4762],_mm256_xor_si256(c2[809],_mm256_xor_si256(c2[6966],_mm256_xor_si256(c2[10923],_mm256_xor_si256(c2[3001],_mm256_xor_si256(c2[12261],_mm256_xor_si256(c2[3909],_mm256_xor_si256(c2[4349],_mm256_xor_si256(c2[6989],_mm256_xor_si256(c2[13146],_mm256_xor_si256(c2[7868],_mm256_xor_si256(c2[14025],_mm256_xor_si256(c2[3927],_mm256_xor_si256(c2[9644],_mm256_xor_si256(c2[10084],_mm256_xor_si256(c2[14049],_mm256_xor_si256(c2[6127],_mm256_xor_si256(c2[4801],_mm256_xor_si256(c2[10968],_mm256_xor_si256(c2[5262],_mm256_xor_si256(c2[10989],_mm256_xor_si256(c2[11429],_mm256_xor_si256(c2[10980],_mm256_xor_si256(c2[3068],_mm256_xor_si256(c2[7023],_mm256_xor_si256(c2[13180],c2[7905])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 12
d2[120]=_mm256_xor_si256(c2[2207],_mm256_xor_si256(c2[4867],_mm256_xor_si256(c2[4165],_mm256_xor_si256(c2[7261],_mm256_xor_si256(c2[4223],c2[9161])))));
//row: 13
d2[130]=_mm256_xor_si256(c2[6163],_mm256_xor_si256(c2[6603],_mm256_xor_si256(c2[9240],_mm256_xor_si256(c2[4403],_mm256_xor_si256(c2[888],_mm256_xor_si256(c2[3081],_mm256_xor_si256(c2[8821],_mm256_xor_si256(c2[9261],_mm256_xor_si256(c2[5741],_mm256_xor_si256(c2[9707],_mm256_xor_si256(c2[5324],_mm256_xor_si256(c2[5764],_mm256_xor_si256(c2[5320],_mm256_xor_si256(c2[9723],_mm256_xor_si256(c2[9742],_mm256_xor_si256(c2[10182],_mm256_xor_si256(c2[502],_mm256_xor_si256(c2[1822],_mm256_xor_si256(c2[6229],_mm256_xor_si256(c2[4929],_mm256_xor_si256(c2[13289],_mm256_xor_si256(c2[4927],_mm256_xor_si256(c2[9348],_mm256_xor_si256(c2[9788],_mm256_xor_si256(c2[3186],_mm256_xor_si256(c2[5382],_mm256_xor_si256(c2[5402],_mm256_xor_si256(c2[5842],_mm256_xor_si256(c2[4088],_mm256_xor_si256(c2[1443],_mm256_xor_si256(c2[4985],_mm256_xor_si256(c2[7187],_mm256_xor_si256(c2[9386],_mm256_xor_si256(c2[6749],_mm256_xor_si256(c2[4561],_mm256_xor_si256(c2[6327],_mm256_xor_si256(c2[9403],_mm256_xor_si256(c2[8981],_mm256_xor_si256(c2[9421],_mm256_xor_si256(c2[9863],_mm256_xor_si256(c2[5903],_mm256_xor_si256(c2[3286],_mm256_xor_si256(c2[3726],_mm256_xor_si256(c2[7244],_mm256_xor_si256(c2[13849],_mm256_xor_si256(c2[12547],_mm256_xor_si256(c2[12987],_mm256_xor_si256(c2[3305],_mm256_xor_si256(c2[9460],_mm256_xor_si256(c2[4206],_mm256_xor_si256(c2[4646],_mm256_xor_si256(c2[8160],_mm256_xor_si256(c2[1569],_mm256_xor_si256(c2[4665],_mm256_xor_si256(c2[5105],_mm256_xor_si256(c2[5980],_mm256_xor_si256(c2[4666],_mm256_xor_si256(c2[8203],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[12162],_mm256_xor_si256(c2[6900],_mm256_xor_si256(c2[7340],_mm256_xor_si256(c2[7349],_mm256_xor_si256(c2[8660],_mm256_xor_si256(c2[8684],_mm256_xor_si256(c2[9124],_mm256_xor_si256(c2[6483],_mm256_xor_si256(c2[8242],_mm256_xor_si256(c2[11343],_mm256_xor_si256(c2[13546],_mm256_xor_si256(c2[1222],_mm256_xor_si256(c2[10044],_mm256_xor_si256(c2[10484],_mm256_xor_si256(c2[12688],_mm256_xor_si256(c2[8723],_mm256_xor_si256(c2[9621],_mm256_xor_si256(c2[10061],_mm256_xor_si256(c2[4789],_mm256_xor_si256(c2[5668],_mm256_xor_si256(c2[1287],_mm256_xor_si256(c2[1727],_mm256_xor_si256(c2[11849],_mm256_xor_si256(c2[2601],_mm256_xor_si256(c2[405],_mm256_xor_si256(c2[2622],_mm256_xor_si256(c2[3062],_mm256_xor_si256(c2[8780],c2[4823])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 14
d2[140]=_mm256_xor_si256(c2[6162],_mm256_xor_si256(c2[5089],_mm256_xor_si256(c2[9981],_mm256_xor_si256(c2[13081],_mm256_xor_si256(c2[8705],c2[1308])))));
//row: 15
d2[150]=_mm256_xor_si256(c2[12763],_mm256_xor_si256(c2[1321],_mm256_xor_si256(c2[10563],_mm256_xor_si256(c2[6608],_mm256_xor_si256(c2[7048],_mm256_xor_si256(c2[2207],_mm256_xor_si256(c2[1342],_mm256_xor_si256(c2[11901],_mm256_xor_si256(c2[1348],_mm256_xor_si256(c2[1788],_mm256_xor_si256(c2[909],_mm256_xor_si256(c2[11924],_mm256_xor_si256(c2[11480],_mm256_xor_si256(c2[1804],_mm256_xor_si256(c2[2263],_mm256_xor_si256(c2[6662],_mm256_xor_si256(c2[7542],_mm256_xor_si256(c2[7982],_mm256_xor_si256(c2[11089],_mm256_xor_si256(c2[5360],_mm256_xor_si256(c2[10647],_mm256_xor_si256(c2[11087],_mm256_xor_si256(c2[1869],_mm256_xor_si256(c2[9346],_mm256_xor_si256(c2[11542],_mm256_xor_si256(c2[12002],_mm256_xor_si256(c2[10248],_mm256_xor_si256(c2[7163],_mm256_xor_si256(c2[7603],_mm256_xor_si256(c2[11145],_mm256_xor_si256(c2[13347],_mm256_xor_si256(c2[1027],_mm256_xor_si256(c2[1467],_mm256_xor_si256(c2[10721],_mm256_xor_si256(c2[12487],_mm256_xor_si256(c2[1044],_mm256_xor_si256(c2[1484],_mm256_xor_si256(c2[1502],_mm256_xor_si256(c2[1944],_mm256_xor_si256(c2[12063],_mm256_xor_si256(c2[9886],_mm256_xor_si256(c2[13404],_mm256_xor_si256(c2[5480],_mm256_xor_si256(c2[5920],_mm256_xor_si256(c2[12521],_mm256_xor_si256(c2[5068],_mm256_xor_si256(c2[9465],_mm256_xor_si256(c2[1101],_mm256_xor_si256(c2[1541],_mm256_xor_si256(c2[10806],_mm256_xor_si256(c2[241],_mm256_xor_si256(c2[7289],_mm256_xor_si256(c2[7729],_mm256_xor_si256(c2[11265],_mm256_xor_si256(c2[12140],_mm256_xor_si256(c2[10386],_mm256_xor_si256(c2[10826],_mm256_xor_si256(c2[1144],_mm256_xor_si256(c2[284],_mm256_xor_si256(c2[6880],_mm256_xor_si256(c2[3803],_mm256_xor_si256(c2[4243],_mm256_xor_si256(c2[13500],_mm256_xor_si256(c2[13509],_mm256_xor_si256(c2[741],_mm256_xor_si256(c2[1205],_mm256_xor_si256(c2[12643],_mm256_xor_si256(c2[13962],_mm256_xor_si256(c2[323],_mm256_xor_si256(c2[3424],_mm256_xor_si256(c2[5627],_mm256_xor_si256(c2[6942],_mm256_xor_si256(c2[7382],_mm256_xor_si256(c2[2565],_mm256_xor_si256(c2[4769],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[804],_mm256_xor_si256(c2[10925],_mm256_xor_si256(c2[2142],_mm256_xor_si256(c2[10949],_mm256_xor_si256(c2[11828],_mm256_xor_si256(c2[7887],_mm256_xor_si256(c2[3920],_mm256_xor_si256(c2[8321],_mm256_xor_si256(c2[8761],_mm256_xor_si256(c2[9222],_mm256_xor_si256(c2[861],_mm256_xor_si256(c2[10543],c2[10983]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 16
d2[160]=_mm256_xor_si256(c2[9241],_mm256_xor_si256(c2[11888],_mm256_xor_si256(c2[7041],_mm256_xor_si256(c2[3526],_mm256_xor_si256(c2[11909],_mm256_xor_si256(c2[8389],_mm256_xor_si256(c2[12345],_mm256_xor_si256(c2[2222],_mm256_xor_si256(c2[8402],_mm256_xor_si256(c2[7968],_mm256_xor_si256(c2[12361],_mm256_xor_si256(c2[12820],_mm256_xor_si256(c2[3140],_mm256_xor_si256(c2[4460],_mm256_xor_si256(c2[5344],_mm256_xor_si256(c2[7567],_mm256_xor_si256(c2[1848],_mm256_xor_si256(c2[7565],_mm256_xor_si256(c2[12426],_mm256_xor_si256(c2[5824],_mm256_xor_si256(c2[8020],_mm256_xor_si256(c2[8480],_mm256_xor_si256(c2[6726],_mm256_xor_si256(c2[4081],_mm256_xor_si256(c2[7623],_mm256_xor_si256(c2[9825],_mm256_xor_si256(c2[12024],_mm256_xor_si256(c2[7209],_mm256_xor_si256(c2[8965],_mm256_xor_si256(c2[12041],_mm256_xor_si256(c2[12069],_mm256_xor_si256(c2[12501],_mm256_xor_si256(c2[8541],_mm256_xor_si256(c2[6364],_mm256_xor_si256(c2[9882],_mm256_xor_si256(c2[2408],_mm256_xor_si256(c2[1546],_mm256_xor_si256(c2[5943],_mm256_xor_si256(c2[12108],_mm256_xor_si256(c2[5941],_mm256_xor_si256(c2[7284],_mm256_xor_si256(c2[10808],_mm256_xor_si256(c2[4207],_mm256_xor_si256(c2[7743],_mm256_xor_si256(c2[8628],_mm256_xor_si256(c2[7304],_mm256_xor_si256(c2[10841],_mm256_xor_si256(c2[3368],_mm256_xor_si256(c2[721],_mm256_xor_si256(c2[9988],_mm256_xor_si256(c2[9987],_mm256_xor_si256(c2[11308],_mm256_xor_si256(c2[11762],_mm256_xor_si256(c2[9121],_mm256_xor_si256(c2[10880],_mm256_xor_si256(c2[13981],_mm256_xor_si256(c2[2105],_mm256_xor_si256(c2[3860],_mm256_xor_si256(c2[13122],_mm256_xor_si256(c2[1247],_mm256_xor_si256(c2[11361],_mm256_xor_si256(c2[12709],_mm256_xor_si256(c2[7427],_mm256_xor_si256(c2[8306],_mm256_xor_si256(c2[4365],_mm256_xor_si256(c2[408],_mm256_xor_si256(c2[5249],_mm256_xor_si256(c2[8763],_mm256_xor_si256(c2[5700],_mm256_xor_si256(c2[11428],c2[7461]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 17
d2[170]=_mm256_xor_si256(c2[448],_mm256_xor_si256(c2[8644],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[8701],c2[2187]))));
//row: 18
d2[180]=_mm256_xor_si256(c2[1788],_mm256_xor_si256(c2[2889],_mm256_xor_si256(c2[1589],_mm256_xor_si256(c2[6084],c2[3469]))));
//row: 19
d2[190]=_mm256_xor_si256(c2[2],_mm256_xor_si256(c2[9265],_mm256_xor_si256(c2[2343],_mm256_xor_si256(c2[6328],c2[4161]))));
//row: 20
d2[200]=_mm256_xor_si256(c2[8362],_mm256_xor_si256(c2[11009],_mm256_xor_si256(c2[6162],_mm256_xor_si256(c2[2647],_mm256_xor_si256(c2[5729],_mm256_xor_si256(c2[11020],_mm256_xor_si256(c2[7500],_mm256_xor_si256(c2[11466],_mm256_xor_si256(c2[7523],_mm256_xor_si256(c2[7089],_mm256_xor_si256(c2[11482],_mm256_xor_si256(c2[11941],_mm256_xor_si256(c2[2261],_mm256_xor_si256(c2[3581],_mm256_xor_si256(c2[945],_mm256_xor_si256(c2[6688],_mm256_xor_si256(c2[969],_mm256_xor_si256(c2[6686],_mm256_xor_si256(c2[11547],_mm256_xor_si256(c2[4945],_mm256_xor_si256(c2[7141],_mm256_xor_si256(c2[7601],_mm256_xor_si256(c2[5847],_mm256_xor_si256(c2[3202],_mm256_xor_si256(c2[6744],_mm256_xor_si256(c2[8946],_mm256_xor_si256(c2[11145],_mm256_xor_si256(c2[6320],_mm256_xor_si256(c2[8086],_mm256_xor_si256(c2[11162],_mm256_xor_si256(c2[11180],_mm256_xor_si256(c2[11622],_mm256_xor_si256(c2[7662],_mm256_xor_si256(c2[3701],_mm256_xor_si256(c2[5485],_mm256_xor_si256(c2[9003],_mm256_xor_si256(c2[1529],_mm256_xor_si256(c2[667],_mm256_xor_si256(c2[5064],_mm256_xor_si256(c2[11229],_mm256_xor_si256(c2[1104],_mm256_xor_si256(c2[6405],_mm256_xor_si256(c2[9929],_mm256_xor_si256(c2[3328],_mm256_xor_si256(c2[6864],_mm256_xor_si256(c2[7749],_mm256_xor_si256(c2[6425],_mm256_xor_si256(c2[9962],_mm256_xor_si256(c2[2489],_mm256_xor_si256(c2[13921],_mm256_xor_si256(c2[9109],_mm256_xor_si256(c2[9108],_mm256_xor_si256(c2[10429],_mm256_xor_si256(c2[10883],_mm256_xor_si256(c2[8242],_mm256_xor_si256(c2[10001],_mm256_xor_si256(c2[13102],_mm256_xor_si256(c2[1226],_mm256_xor_si256(c2[2981],_mm256_xor_si256(c2[12243],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[10482],_mm256_xor_si256(c2[11820],_mm256_xor_si256(c2[6548],_mm256_xor_si256(c2[7427],_mm256_xor_si256(c2[3486],_mm256_xor_si256(c2[13608],_mm256_xor_si256(c2[4360],_mm256_xor_si256(c2[4821],_mm256_xor_si256(c2[10549],c2[6582]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 21
d2[210]=_mm256_xor_si256(c2[6622],_mm256_xor_si256(c2[6705],_mm256_xor_si256(c2[2084],_mm256_xor_si256(c2[12288],c2[3503]))));
//row: 22
d2[220]=_mm256_xor_si256(c2[7485],_mm256_xor_si256(c2[9040],_mm256_xor_si256(c2[10381],c2[12669])));
//row: 23
d2[230]=_mm256_xor_si256(c2[11027],_mm256_xor_si256(c2[7961],_mm256_xor_si256(c2[2404],c2[4323])));
//row: 24
d2[240]=_mm256_xor_si256(c2[881],_mm256_xor_si256(c2[3528],_mm256_xor_si256(c2[12760],_mm256_xor_si256(c2[9245],_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[3549],_mm256_xor_si256(c2[29],_mm256_xor_si256(c2[3985],_mm256_xor_si256(c2[42],_mm256_xor_si256(c2[13687],_mm256_xor_si256(c2[4001],_mm256_xor_si256(c2[4460],_mm256_xor_si256(c2[8869],_mm256_xor_si256(c2[10189],_mm256_xor_si256(c2[10628],_mm256_xor_si256(c2[13286],_mm256_xor_si256(c2[7567],_mm256_xor_si256(c2[13284],_mm256_xor_si256(c2[6243],_mm256_xor_si256(c2[4066],_mm256_xor_si256(c2[11543],_mm256_xor_si256(c2[13749],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[12445],_mm256_xor_si256(c2[9800],_mm256_xor_si256(c2[13342],_mm256_xor_si256(c2[1465],_mm256_xor_si256(c2[3664],_mm256_xor_si256(c2[12928],_mm256_xor_si256(c2[605],_mm256_xor_si256(c2[3681],_mm256_xor_si256(c2[3709],_mm256_xor_si256(c2[4141],_mm256_xor_si256(c2[181],_mm256_xor_si256(c2[12083],_mm256_xor_si256(c2[1522],_mm256_xor_si256(c2[8127],_mm256_xor_si256(c2[7265],_mm256_xor_si256(c2[11662],_mm256_xor_si256(c2[3748],_mm256_xor_si256(c2[12105],_mm256_xor_si256(c2[13003],_mm256_xor_si256(c2[2448],_mm256_xor_si256(c2[9926],_mm256_xor_si256(c2[13462],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[13023],_mm256_xor_si256(c2[2481],_mm256_xor_si256(c2[9087],_mm256_xor_si256(c2[6440],_mm256_xor_si256(c2[1628],_mm256_xor_si256(c2[1627],_mm256_xor_si256(c2[2948],_mm256_xor_si256(c2[3402],_mm256_xor_si256(c2[761],_mm256_xor_si256(c2[2520],_mm256_xor_si256(c2[5621],_mm256_xor_si256(c2[7824],_mm256_xor_si256(c2[9589],_mm256_xor_si256(c2[4762],_mm256_xor_si256(c2[6966],_mm256_xor_si256(c2[3001],_mm256_xor_si256(c2[4349],_mm256_xor_si256(c2[13146],_mm256_xor_si256(c2[14025],_mm256_xor_si256(c2[10084],_mm256_xor_si256(c2[6127],_mm256_xor_si256(c2[10968],_mm256_xor_si256(c2[11429],_mm256_xor_si256(c2[3068],c2[13180]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 25
d2[250]=_mm256_xor_si256(c2[5305],_mm256_xor_si256(c2[3209],_mm256_xor_si256(c2[143],c2[6441])));
//row: 26
d2[260]=_mm256_xor_si256(c2[6168],_mm256_xor_si256(c2[6203],_mm256_xor_si256(c2[13289],c2[1622])));
//row: 27
d2[270]=_mm256_xor_si256(c2[7946],_mm256_xor_si256(c2[12880],c2[7209]));
//row: 28
d2[280]=_mm256_xor_si256(c2[4840],_mm256_xor_si256(c2[2289],_mm256_xor_si256(c2[8301],c2[4827])));
//row: 29
d2[290]=_mm256_xor_si256(c2[3083],_mm256_xor_si256(c2[5720],_mm256_xor_si256(c2[883],_mm256_xor_si256(c2[11007],_mm256_xor_si256(c2[11447],_mm256_xor_si256(c2[5741],_mm256_xor_si256(c2[2221],_mm256_xor_si256(c2[5747],_mm256_xor_si256(c2[6187],_mm256_xor_si256(c2[11900],_mm256_xor_si256(c2[2244],_mm256_xor_si256(c2[1800],_mm256_xor_si256(c2[6203],_mm256_xor_si256(c2[6662],_mm256_xor_si256(c2[11061],_mm256_xor_si256(c2[11941],_mm256_xor_si256(c2[12381],_mm256_xor_si256(c2[1409],_mm256_xor_si256(c2[9769],_mm256_xor_si256(c2[967],_mm256_xor_si256(c2[1407],_mm256_xor_si256(c2[6268],_mm256_xor_si256(c2[13745],_mm256_xor_si256(c2[1862],_mm256_xor_si256(c2[2322],_mm256_xor_si256(c2[568],_mm256_xor_si256(c2[11562],_mm256_xor_si256(c2[12002],_mm256_xor_si256(c2[1465],_mm256_xor_si256(c2[3667],_mm256_xor_si256(c2[5426],_mm256_xor_si256(c2[5866],_mm256_xor_si256(c2[1041],_mm256_xor_si256(c2[2807],_mm256_xor_si256(c2[5443],_mm256_xor_si256(c2[5883],_mm256_xor_si256(c2[5901],_mm256_xor_si256(c2[6343],_mm256_xor_si256(c2[2383],_mm256_xor_si256(c2[206],_mm256_xor_si256(c2[3724],_mm256_xor_si256(c2[9889],_mm256_xor_si256(c2[10329],_mm256_xor_si256(c2[9467],_mm256_xor_si256(c2[13864],_mm256_xor_si256(c2[5500],_mm256_xor_si256(c2[5940],_mm256_xor_si256(c2[1126],_mm256_xor_si256(c2[4640],_mm256_xor_si256(c2[11688],_mm256_xor_si256(c2[12128],_mm256_xor_si256(c2[1585],_mm256_xor_si256(c2[2460],_mm256_xor_si256(c2[706],_mm256_xor_si256(c2[1146],_mm256_xor_si256(c2[4683],_mm256_xor_si256(c2[11289],_mm256_xor_si256(c2[8202],_mm256_xor_si256(c2[8642],_mm256_xor_si256(c2[9089],_mm256_xor_si256(c2[3820],_mm256_xor_si256(c2[3829],_mm256_xor_si256(c2[5140],_mm256_xor_si256(c2[5604],_mm256_xor_si256(c2[2963],_mm256_xor_si256(c2[4282],_mm256_xor_si256(c2[4722],_mm256_xor_si256(c2[7823],_mm256_xor_si256(c2[10026],_mm256_xor_si256(c2[11341],_mm256_xor_si256(c2[11781],_mm256_xor_si256(c2[6964],_mm256_xor_si256(c2[9168],_mm256_xor_si256(c2[4763],_mm256_xor_si256(c2[5203],_mm256_xor_si256(c2[9603],_mm256_xor_si256(c2[6541],_mm256_xor_si256(c2[1269],_mm256_xor_si256(c2[2148],_mm256_xor_si256(c2[12286],_mm256_xor_si256(c2[8329],_mm256_xor_si256(c2[12720],_mm256_xor_si256(c2[13160],_mm256_xor_si256(c2[13621],_mm256_xor_si256(c2[5260],_mm256_xor_si256(c2[863],c2[1303]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 30
d2[300]=_mm256_xor_si256(c2[7486],_mm256_xor_si256(c2[10123],_mm256_xor_si256(c2[4846],_mm256_xor_si256(c2[5286],_mm256_xor_si256(c2[1321],_mm256_xor_si256(c2[1761],_mm256_xor_si256(c2[11882],_mm256_xor_si256(c2[10144],_mm256_xor_si256(c2[6184],_mm256_xor_si256(c2[6624],_mm256_xor_si256(c2[10140],_mm256_xor_si256(c2[10580],_mm256_xor_si256(c2[6647],_mm256_xor_si256(c2[6203],_mm256_xor_si256(c2[10166],_mm256_xor_si256(c2[10606],_mm256_xor_si256(c2[11065],_mm256_xor_si256(c2[1385],_mm256_xor_si256(c2[2265],_mm256_xor_si256(c2[2705],_mm256_xor_si256(c2[5802],_mm256_xor_si256(c2[13722],_mm256_xor_si256(c2[83],_mm256_xor_si256(c2[5360],_mm256_xor_si256(c2[5800],_mm256_xor_si256(c2[10661],_mm256_xor_si256(c2[4069],_mm256_xor_si256(c2[5825],_mm256_xor_si256(c2[6265],_mm256_xor_si256(c2[6725],_mm256_xor_si256(c2[4521],_mm256_xor_si256(c2[4961],_mm256_xor_si256(c2[1886],_mm256_xor_si256(c2[2326],_mm256_xor_si256(c2[5868],_mm256_xor_si256(c2[7620],_mm256_xor_si256(c2[8060],_mm256_xor_si256(c2[9829],_mm256_xor_si256(c2[10269],_mm256_xor_si256(c2[5444],_mm256_xor_si256(c2[6760],_mm256_xor_si256(c2[7200],_mm256_xor_si256(c2[9846],_mm256_xor_si256(c2[10286],_mm256_xor_si256(c2[10304],_mm256_xor_si256(c2[10746],_mm256_xor_si256(c2[6346],_mm256_xor_si256(c2[6786],_mm256_xor_si256(c2[4609],_mm256_xor_si256(c2[7687],_mm256_xor_si256(c2[8127],_mm256_xor_si256(c2[203],_mm256_xor_si256(c2[643],_mm256_xor_si256(c2[10320],_mm256_xor_si256(c2[13860],_mm256_xor_si256(c2[4188],_mm256_xor_si256(c2[9903],_mm256_xor_si256(c2[10343],_mm256_xor_si256(c2[5529],_mm256_xor_si256(c2[9043],_mm256_xor_si256(c2[2002],_mm256_xor_si256(c2[2442],_mm256_xor_si256(c2[5988],_mm256_xor_si256(c2[6423],_mm256_xor_si256(c2[6863],_mm256_xor_si256(c2[5109],_mm256_xor_si256(c2[5549],_mm256_xor_si256(c2[4223],_mm256_xor_si256(c2[9086],_mm256_xor_si256(c2[1163],_mm256_xor_si256(c2[1603],_mm256_xor_si256(c2[12605],_mm256_xor_si256(c2[13045],_mm256_xor_si256(c2[8223],_mm256_xor_si256(c2[8222],_mm256_xor_si256(c2[9103],_mm256_xor_si256(c2[9543],_mm256_xor_si256(c2[10007],_mm256_xor_si256(c2[7366],_mm256_xor_si256(c2[8685],_mm256_xor_si256(c2[9125],_mm256_xor_si256(c2[12226],_mm256_xor_si256(c2[13989],_mm256_xor_si256(c2[340],_mm256_xor_si256(c2[1665],_mm256_xor_si256(c2[2105],_mm256_xor_si256(c2[11367],_mm256_xor_si256(c2[13121],_mm256_xor_si256(c2[13561],_mm256_xor_si256(c2[9166],_mm256_xor_si256(c2[9606],_mm256_xor_si256(c2[10944],_mm256_xor_si256(c2[5662],_mm256_xor_si256(c2[6101],_mm256_xor_si256(c2[6541],_mm256_xor_si256(c2[2600],_mm256_xor_si256(c2[12282],_mm256_xor_si256(c2[12722],_mm256_xor_si256(c2[3044],_mm256_xor_si256(c2[3484],_mm256_xor_si256(c2[3945],_mm256_xor_si256(c2[9663],_mm256_xor_si256(c2[5266],c2[5706])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 31
d2[310]=_mm256_xor_si256(c2[4844],_mm256_xor_si256(c2[5287],_mm256_xor_si256(c2[7481],_mm256_xor_si256(c2[7924],_mm256_xor_si256(c2[2644],_mm256_xor_si256(c2[3087],_mm256_xor_si256(c2[13208],_mm256_xor_si256(c2[13201],_mm256_xor_si256(c2[13641],_mm256_xor_si256(c2[7502],_mm256_xor_si256(c2[7945],_mm256_xor_si256(c2[3982],_mm256_xor_si256(c2[4425],_mm256_xor_si256(c2[7948],_mm256_xor_si256(c2[7941],_mm256_xor_si256(c2[8381],_mm256_xor_si256(c2[13226],_mm256_xor_si256(c2[4005],_mm256_xor_si256(c2[4448],_mm256_xor_si256(c2[3561],_mm256_xor_si256(c2[4004],_mm256_xor_si256(c2[7964],_mm256_xor_si256(c2[8407],_mm256_xor_si256(c2[8423],_mm256_xor_si256(c2[8866],_mm256_xor_si256(c2[12822],_mm256_xor_si256(c2[13265],_mm256_xor_si256(c2[63],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[506],_mm256_xor_si256(c2[3160],_mm256_xor_si256(c2[3603],_mm256_xor_si256(c2[11520],_mm256_xor_si256(c2[11963],_mm256_xor_si256(c2[3168],_mm256_xor_si256(c2[3161],_mm256_xor_si256(c2[3601],_mm256_xor_si256(c2[8029],_mm256_xor_si256(c2[8462],_mm256_xor_si256(c2[1427],_mm256_xor_si256(c2[1860],_mm256_xor_si256(c2[3623],_mm256_xor_si256(c2[4066],_mm256_xor_si256(c2[4083],_mm256_xor_si256(c2[4526],_mm256_xor_si256(c2[2329],_mm256_xor_si256(c2[2762],_mm256_xor_si256(c2[13763],_mm256_xor_si256(c2[13766],_mm256_xor_si256(c2[127],_mm256_xor_si256(c2[3226],_mm256_xor_si256(c2[3669],_mm256_xor_si256(c2[5428],_mm256_xor_si256(c2[5861],_mm256_xor_si256(c2[7627],_mm256_xor_si256(c2[7620],_mm256_xor_si256(c2[8060],_mm256_xor_si256(c2[8949],_mm256_xor_si256(c2[2802],_mm256_xor_si256(c2[3245],_mm256_xor_si256(c2[4568],_mm256_xor_si256(c2[5001],_mm256_xor_si256(c2[7644],_mm256_xor_si256(c2[7647],_mm256_xor_si256(c2[8087],_mm256_xor_si256(c2[7662],_mm256_xor_si256(c2[8105],_mm256_xor_si256(c2[8104],_mm256_xor_si256(c2[8547],_mm256_xor_si256(c2[4144],_mm256_xor_si256(c2[4587],_mm256_xor_si256(c2[1967],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[5485],_mm256_xor_si256(c2[5928],_mm256_xor_si256(c2[12080],_mm256_xor_si256(c2[12083],_mm256_xor_si256(c2[12523],_mm256_xor_si256(c2[11228],_mm256_xor_si256(c2[11661],_mm256_xor_si256(c2[1546],_mm256_xor_si256(c2[1989],_mm256_xor_si256(c2[7701],_mm256_xor_si256(c2[7704],_mm256_xor_si256(c2[8144],_mm256_xor_si256(c2[2887],_mm256_xor_si256(c2[3320],_mm256_xor_si256(c2[6401],_mm256_xor_si256(c2[6844],_mm256_xor_si256(c2[13889],_mm256_xor_si256(c2[13882],_mm256_xor_si256(c2[243],_mm256_xor_si256(c2[3346],_mm256_xor_si256(c2[3789],_mm256_xor_si256(c2[4221],_mm256_xor_si256(c2[4664],_mm256_xor_si256(c2[2907],_mm256_xor_si256(c2[2900],_mm256_xor_si256(c2[3340],_mm256_xor_si256(c2[6444],_mm256_xor_si256(c2[6887],_mm256_xor_si256(c2[13040],_mm256_xor_si256(c2[13483],_mm256_xor_si256(c2[10403],_mm256_xor_si256(c2[10406],_mm256_xor_si256(c2[10846],_mm256_xor_si256(c2[5581],_mm256_xor_si256(c2[6024],_mm256_xor_si256(c2[5580],_mm256_xor_si256(c2[6023],_mm256_xor_si256(c2[6901],_mm256_xor_si256(c2[7344],_mm256_xor_si256(c2[7365],_mm256_xor_si256(c2[7808],_mm256_xor_si256(c2[4724],_mm256_xor_si256(c2[5167],_mm256_xor_si256(c2[6483],_mm256_xor_si256(c2[6486],_mm256_xor_si256(c2[6926],_mm256_xor_si256(c2[9584],_mm256_xor_si256(c2[10027],_mm256_xor_si256(c2[11787],_mm256_xor_si256(c2[12220],_mm256_xor_si256(c2[13542],_mm256_xor_si256(c2[13545],_mm256_xor_si256(c2[13985],_mm256_xor_si256(c2[8725],_mm256_xor_si256(c2[9168],_mm256_xor_si256(c2[10929],_mm256_xor_si256(c2[11362],_mm256_xor_si256(c2[6964],_mm256_xor_si256(c2[6967],_mm256_xor_si256(c2[7407],_mm256_xor_si256(c2[8302],_mm256_xor_si256(c2[8745],_mm256_xor_si256(c2[3020],_mm256_xor_si256(c2[3463],_mm256_xor_si256(c2[3909],_mm256_xor_si256(c2[4342],_mm256_xor_si256(c2[14047],_mm256_xor_si256(c2[401],_mm256_xor_si256(c2[10080],_mm256_xor_si256(c2[10523],_mm256_xor_si256(c2[842],_mm256_xor_si256(c2[845],_mm256_xor_si256(c2[1285],_mm256_xor_si256(c2[1303],_mm256_xor_si256(c2[1746],_mm256_xor_si256(c2[7021],_mm256_xor_si256(c2[7464],_mm256_xor_si256(c2[3064],_mm256_xor_si256(c2[3067],c2[3507]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 32
d2[320]=_mm256_xor_si256(c2[1329],_mm256_xor_si256(c2[3966],_mm256_xor_si256(c2[12768],_mm256_xor_si256(c2[13208],_mm256_xor_si256(c2[9243],_mm256_xor_si256(c2[9683],_mm256_xor_si256(c2[7926],_mm256_xor_si256(c2[3987],_mm256_xor_si256(c2[27],_mm256_xor_si256(c2[467],_mm256_xor_si256(c2[3983],_mm256_xor_si256(c2[4423],_mm256_xor_si256(c2[480],_mm256_xor_si256(c2[46],_mm256_xor_si256(c2[4009],_mm256_xor_si256(c2[4449],_mm256_xor_si256(c2[4908],_mm256_xor_si256(c2[9307],_mm256_xor_si256(c2[10187],_mm256_xor_si256(c2[10627],_mm256_xor_si256(c2[13724],_mm256_xor_si256(c2[7565],_mm256_xor_si256(c2[8005],_mm256_xor_si256(c2[13282],_mm256_xor_si256(c2[13722],_mm256_xor_si256(c2[4504],_mm256_xor_si256(c2[11981],_mm256_xor_si256(c2[13747],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[568],_mm256_xor_si256(c2[12443],_mm256_xor_si256(c2[12883],_mm256_xor_si256(c2[9808],_mm256_xor_si256(c2[10248],_mm256_xor_si256(c2[13780],_mm256_xor_si256(c2[1463],_mm256_xor_si256(c2[1903],_mm256_xor_si256(c2[3662],_mm256_xor_si256(c2[4102],_mm256_xor_si256(c2[13366],_mm256_xor_si256(c2[603],_mm256_xor_si256(c2[1043],_mm256_xor_si256(c2[3689],_mm256_xor_si256(c2[4129],_mm256_xor_si256(c2[4147],_mm256_xor_si256(c2[4589],_mm256_xor_si256(c2[189],_mm256_xor_si256(c2[629],_mm256_xor_si256(c2[12521],_mm256_xor_si256(c2[1520],_mm256_xor_si256(c2[1960],_mm256_xor_si256(c2[8125],_mm256_xor_si256(c2[8565],_mm256_xor_si256(c2[7703],_mm256_xor_si256(c2[12100],_mm256_xor_si256(c2[3746],_mm256_xor_si256(c2[4186],_mm256_xor_si256(c2[13441],_mm256_xor_si256(c2[2886],_mm256_xor_si256(c2[9924],_mm256_xor_si256(c2[10364],_mm256_xor_si256(c2[9920],_mm256_xor_si256(c2[13900],_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[706],_mm256_xor_si256(c2[13021],_mm256_xor_si256(c2[13461],_mm256_xor_si256(c2[2929],_mm256_xor_si256(c2[9085],_mm256_xor_si256(c2[9525],_mm256_xor_si256(c2[6448],_mm256_xor_si256(c2[6888],_mm256_xor_si256(c2[6888],_mm256_xor_si256(c2[2066],_mm256_xor_si256(c2[2065],_mm256_xor_si256(c2[2946],_mm256_xor_si256(c2[3386],_mm256_xor_si256(c2[3840],_mm256_xor_si256(c2[1209],_mm256_xor_si256(c2[2528],_mm256_xor_si256(c2[2968],_mm256_xor_si256(c2[6069],_mm256_xor_si256(c2[7822],_mm256_xor_si256(c2[8262],_mm256_xor_si256(c2[9587],_mm256_xor_si256(c2[10027],_mm256_xor_si256(c2[5200],_mm256_xor_si256(c2[6964],_mm256_xor_si256(c2[7404],_mm256_xor_si256(c2[3009],_mm256_xor_si256(c2[3449],_mm256_xor_si256(c2[4787],_mm256_xor_si256(c2[13584],_mm256_xor_si256(c2[14023],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[10522],_mm256_xor_si256(c2[6125],_mm256_xor_si256(c2[6565],_mm256_xor_si256(c2[10966],_mm256_xor_si256(c2[11406],_mm256_xor_si256(c2[11867],_mm256_xor_si256(c2[3506],_mm256_xor_si256(c2[13188],c2[13628])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 33
d2[330]=_mm256_xor_si256(c2[4425],_mm256_xor_si256(c2[8840],_mm256_xor_si256(c2[5504],c2[861])));
//row: 34
d2[340]=_mm256_xor_si256(c2[11885],_mm256_xor_si256(c2[3669],_mm256_xor_si256(c2[2500],c2[5621])));
//row: 35
d2[350]=_mm256_xor_si256(c2[2641],_mm256_xor_si256(c2[5288],_mm256_xor_si256(c2[441],_mm256_xor_si256(c2[11005],_mm256_xor_si256(c2[5309],_mm256_xor_si256(c2[1789],_mm256_xor_si256(c2[5745],_mm256_xor_si256(c2[6626],_mm256_xor_si256(c2[1802],_mm256_xor_si256(c2[1368],_mm256_xor_si256(c2[5761],_mm256_xor_si256(c2[6220],_mm256_xor_si256(c2[10629],_mm256_xor_si256(c2[11949],_mm256_xor_si256(c2[967],_mm256_xor_si256(c2[9327],_mm256_xor_si256(c2[965],_mm256_xor_si256(c2[5826],_mm256_xor_si256(c2[13303],_mm256_xor_si256(c2[1420],_mm256_xor_si256(c2[1880],_mm256_xor_si256(c2[126],_mm256_xor_si256(c2[11560],_mm256_xor_si256(c2[13324],_mm256_xor_si256(c2[1023],_mm256_xor_si256(c2[3225],_mm256_xor_si256(c2[5424],_mm256_xor_si256(c2[609],_mm256_xor_si256(c2[2365],_mm256_xor_si256(c2[5441],_mm256_xor_si256(c2[5469],_mm256_xor_si256(c2[5901],_mm256_xor_si256(c2[1941],_mm256_xor_si256(c2[13843],_mm256_xor_si256(c2[3282],_mm256_xor_si256(c2[9887],_mm256_xor_si256(c2[9025],_mm256_xor_si256(c2[13422],_mm256_xor_si256(c2[5508],_mm256_xor_si256(c2[684],_mm256_xor_si256(c2[4208],_mm256_xor_si256(c2[11686],_mm256_xor_si256(c2[10361],_mm256_xor_si256(c2[1143],_mm256_xor_si256(c2[2028],_mm256_xor_si256(c2[704],_mm256_xor_si256(c2[4241],_mm256_xor_si256(c2[10847],_mm256_xor_si256(c2[8200],_mm256_xor_si256(c2[3388],_mm256_xor_si256(c2[3387],_mm256_xor_si256(c2[4708],_mm256_xor_si256(c2[5162],_mm256_xor_si256(c2[2521],_mm256_xor_si256(c2[4280],_mm256_xor_si256(c2[7381],_mm256_xor_si256(c2[9584],_mm256_xor_si256(c2[11349],_mm256_xor_si256(c2[6522],_mm256_xor_si256(c2[8726],_mm256_xor_si256(c2[4761],_mm256_xor_si256(c2[6109],_mm256_xor_si256(c2[827],_mm256_xor_si256(c2[1706],_mm256_xor_si256(c2[11844],_mm256_xor_si256(c2[7887],_mm256_xor_si256(c2[12728],_mm256_xor_si256(c2[13189],_mm256_xor_si256(c2[4828],c2[861])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 36
d2[360]=_mm256_xor_si256(c2[1328],_mm256_xor_si256(c2[8645],_mm256_xor_si256(c2[8225],c2[365])));
//row: 37
d2[370]=_mm256_xor_si256(c2[12325],_mm256_xor_si256(c2[12765],_mm256_xor_si256(c2[1323],_mm256_xor_si256(c2[10565],_mm256_xor_si256(c2[7040],_mm256_xor_si256(c2[904],_mm256_xor_si256(c2[1344],_mm256_xor_si256(c2[11903],_mm256_xor_si256(c2[1780],_mm256_xor_si256(c2[4429],_mm256_xor_si256(c2[11486],_mm256_xor_si256(c2[11926],_mm256_xor_si256(c2[11482],_mm256_xor_si256(c2[1806],_mm256_xor_si256(c2[1825],_mm256_xor_si256(c2[2265],_mm256_xor_si256(c2[6664],_mm256_xor_si256(c2[7984],_mm256_xor_si256(c2[11081],_mm256_xor_si256(c2[5362],_mm256_xor_si256(c2[11089],_mm256_xor_si256(c2[1421],_mm256_xor_si256(c2[1861],_mm256_xor_si256(c2[9348],_mm256_xor_si256(c2[11544],_mm256_xor_si256(c2[11564],_mm256_xor_si256(c2[12004],_mm256_xor_si256(c2[10240],_mm256_xor_si256(c2[7605],_mm256_xor_si256(c2[11147],_mm256_xor_si256(c2[13349],_mm256_xor_si256(c2[1469],_mm256_xor_si256(c2[10723],_mm256_xor_si256(c2[12489],_mm256_xor_si256(c2[1486],_mm256_xor_si256(c2[1064],_mm256_xor_si256(c2[1504],_mm256_xor_si256(c2[1946],_mm256_xor_si256(c2[12065],_mm256_xor_si256(c2[9448],_mm256_xor_si256(c2[9888],_mm256_xor_si256(c2[13406],_mm256_xor_si256(c2[5922],_mm256_xor_si256(c2[4620],_mm256_xor_si256(c2[5060],_mm256_xor_si256(c2[9467],_mm256_xor_si256(c2[1543],_mm256_xor_si256(c2[10368],_mm256_xor_si256(c2[10808],_mm256_xor_si256(c2[243],_mm256_xor_si256(c2[7721],_mm256_xor_si256(c2[10827],_mm256_xor_si256(c2[11267],_mm256_xor_si256(c2[12142],_mm256_xor_si256(c2[10828],_mm256_xor_si256(c2[6860],_mm256_xor_si256(c2[286],_mm256_xor_si256(c2[6882],_mm256_xor_si256(c2[4245],_mm256_xor_si256(c2[13062],_mm256_xor_si256(c2[13502],_mm256_xor_si256(c2[13501],_mm256_xor_si256(c2[743],_mm256_xor_si256(c2[767],_mm256_xor_si256(c2[1207],_mm256_xor_si256(c2[12645],_mm256_xor_si256(c2[325],_mm256_xor_si256(c2[3426],_mm256_xor_si256(c2[5629],_mm256_xor_si256(c2[7384],_mm256_xor_si256(c2[2127],_mm256_xor_si256(c2[2567],_mm256_xor_si256(c2[4761],_mm256_xor_si256(c2[806],_mm256_xor_si256(c2[1704],_mm256_xor_si256(c2[2144],_mm256_xor_si256(c2[10941],_mm256_xor_si256(c2[11820],_mm256_xor_si256(c2[7449],_mm256_xor_si256(c2[7889],_mm256_xor_si256(c2[3922],_mm256_xor_si256(c2[8763],_mm256_xor_si256(c2[8784],_mm256_xor_si256(c2[9224],_mm256_xor_si256(c2[863],c2[10985])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 38
d2[380]=_mm256_xor_si256(c2[10124],_mm256_xor_si256(c2[8545],_mm256_xor_si256(c2[202],c2[9485])));
//row: 39
d2[390]=_mm256_xor_si256(c2[2663],_mm256_xor_si256(c2[5782],_mm256_xor_si256(c2[146],c2[7426])));
//row: 40
d2[400]=_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[7202],c2[2546]));
//row: 41
d2[410]=_mm256_xor_si256(c2[11464],_mm256_xor_si256(c2[6661],_mm256_xor_si256(c2[12503],c2[6966])));
//row: 42
d2[420]=_mm256_xor_si256(c2[3526],_mm256_xor_si256(c2[6163],_mm256_xor_si256(c2[886],_mm256_xor_si256(c2[1326],_mm256_xor_si256(c2[11440],_mm256_xor_si256(c2[11880],_mm256_xor_si256(c2[887],_mm256_xor_si256(c2[6184],_mm256_xor_si256(c2[2224],_mm256_xor_si256(c2[2664],_mm256_xor_si256(c2[6180],_mm256_xor_si256(c2[6620],_mm256_xor_si256(c2[2687],_mm256_xor_si256(c2[2243],_mm256_xor_si256(c2[6206],_mm256_xor_si256(c2[6646],_mm256_xor_si256(c2[7105],_mm256_xor_si256(c2[11504],_mm256_xor_si256(c2[12384],_mm256_xor_si256(c2[12824],_mm256_xor_si256(c2[1842],_mm256_xor_si256(c2[9762],_mm256_xor_si256(c2[10202],_mm256_xor_si256(c2[1400],_mm256_xor_si256(c2[1840],_mm256_xor_si256(c2[522],_mm256_xor_si256(c2[6701],_mm256_xor_si256(c2[109],_mm256_xor_si256(c2[1865],_mm256_xor_si256(c2[2305],_mm256_xor_si256(c2[2765],_mm256_xor_si256(c2[561],_mm256_xor_si256(c2[1001],_mm256_xor_si256(c2[12005],_mm256_xor_si256(c2[12445],_mm256_xor_si256(c2[1908],_mm256_xor_si256(c2[3660],_mm256_xor_si256(c2[4100],_mm256_xor_si256(c2[5869],_mm256_xor_si256(c2[6309],_mm256_xor_si256(c2[1484],_mm256_xor_si256(c2[2800],_mm256_xor_si256(c2[3240],_mm256_xor_si256(c2[5886],_mm256_xor_si256(c2[6326],_mm256_xor_si256(c2[6344],_mm256_xor_si256(c2[6786],_mm256_xor_si256(c2[2386],_mm256_xor_si256(c2[2826],_mm256_xor_si256(c2[649],_mm256_xor_si256(c2[3727],_mm256_xor_si256(c2[4167],_mm256_xor_si256(c2[10322],_mm256_xor_si256(c2[10762],_mm256_xor_si256(c2[9900],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[5943],_mm256_xor_si256(c2[6383],_mm256_xor_si256(c2[1569],_mm256_xor_si256(c2[5083],_mm256_xor_si256(c2[12121],_mm256_xor_si256(c2[12561],_mm256_xor_si256(c2[2028],_mm256_xor_si256(c2[2463],_mm256_xor_si256(c2[2903],_mm256_xor_si256(c2[1149],_mm256_xor_si256(c2[1589],_mm256_xor_si256(c2[5126],_mm256_xor_si256(c2[11282],_mm256_xor_si256(c2[11722],_mm256_xor_si256(c2[8645],_mm256_xor_si256(c2[9085],_mm256_xor_si256(c2[4263],_mm256_xor_si256(c2[4262],_mm256_xor_si256(c2[5143],_mm256_xor_si256(c2[5583],_mm256_xor_si256(c2[6047],_mm256_xor_si256(c2[3406],_mm256_xor_si256(c2[4725],_mm256_xor_si256(c2[5165],_mm256_xor_si256(c2[8266],_mm256_xor_si256(c2[10029],_mm256_xor_si256(c2[10469],_mm256_xor_si256(c2[11784],_mm256_xor_si256(c2[12224],_mm256_xor_si256(c2[7407],_mm256_xor_si256(c2[9161],_mm256_xor_si256(c2[9601],_mm256_xor_si256(c2[5206],_mm256_xor_si256(c2[5646],_mm256_xor_si256(c2[6984],_mm256_xor_si256(c2[1702],_mm256_xor_si256(c2[2141],_mm256_xor_si256(c2[2581],_mm256_xor_si256(c2[12729],_mm256_xor_si256(c2[8322],_mm256_xor_si256(c2[8762],_mm256_xor_si256(c2[13163],_mm256_xor_si256(c2[13603],_mm256_xor_si256(c2[14064],_mm256_xor_si256(c2[5703],_mm256_xor_si256(c2[1306],c2[1746]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 43
d2[430]=_mm256_xor_si256(c2[7045],_mm256_xor_si256(c2[9682],_mm256_xor_si256(c2[4845],_mm256_xor_si256(c2[880],_mm256_xor_si256(c2[1320],_mm256_xor_si256(c2[9703],_mm256_xor_si256(c2[6183],_mm256_xor_si256(c2[9709],_mm256_xor_si256(c2[10149],_mm256_xor_si256(c2[1787],_mm256_xor_si256(c2[6206],_mm256_xor_si256(c2[5762],_mm256_xor_si256(c2[10165],_mm256_xor_si256(c2[10624],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[1824],_mm256_xor_si256(c2[2264],_mm256_xor_si256(c2[5361],_mm256_xor_si256(c2[13721],_mm256_xor_si256(c2[4929],_mm256_xor_si256(c2[5369],_mm256_xor_si256(c2[10220],_mm256_xor_si256(c2[3628],_mm256_xor_si256(c2[5824],_mm256_xor_si256(c2[6284],_mm256_xor_si256(c2[4520],_mm256_xor_si256(c2[1445],_mm256_xor_si256(c2[1885],_mm256_xor_si256(c2[5427],_mm256_xor_si256(c2[7629],_mm256_xor_si256(c2[9388],_mm256_xor_si256(c2[9828],_mm256_xor_si256(c2[5003],_mm256_xor_si256(c2[6769],_mm256_xor_si256(c2[9405],_mm256_xor_si256(c2[9845],_mm256_xor_si256(c2[9863],_mm256_xor_si256(c2[10305],_mm256_xor_si256(c2[6345],_mm256_xor_si256(c2[4168],_mm256_xor_si256(c2[7686],_mm256_xor_si256(c2[13841],_mm256_xor_si256(c2[202],_mm256_xor_si256(c2[13429],_mm256_xor_si256(c2[3747],_mm256_xor_si256(c2[9462],_mm256_xor_si256(c2[9902],_mm256_xor_si256(c2[5088],_mm256_xor_si256(c2[8602],_mm256_xor_si256(c2[1561],_mm256_xor_si256(c2[2001],_mm256_xor_si256(c2[5547],_mm256_xor_si256(c2[6422],_mm256_xor_si256(c2[4668],_mm256_xor_si256(c2[5108],_mm256_xor_si256(c2[8645],_mm256_xor_si256(c2[1162],_mm256_xor_si256(c2[12164],_mm256_xor_si256(c2[12604],_mm256_xor_si256(c2[7782],_mm256_xor_si256(c2[7781],_mm256_xor_si256(c2[9102],_mm256_xor_si256(c2[9566],_mm256_xor_si256(c2[6925],_mm256_xor_si256(c2[8244],_mm256_xor_si256(c2[8684],_mm256_xor_si256(c2[2522],_mm256_xor_si256(c2[11785],_mm256_xor_si256(c2[13988],_mm256_xor_si256(c2[1224],_mm256_xor_si256(c2[1664],_mm256_xor_si256(c2[10926],_mm256_xor_si256(c2[13120],_mm256_xor_si256(c2[8725],_mm256_xor_si256(c2[9165],_mm256_xor_si256(c2[7405],_mm256_xor_si256(c2[10503],_mm256_xor_si256(c2[5221],_mm256_xor_si256(c2[6100],_mm256_xor_si256(c2[2169],_mm256_xor_si256(c2[12281],_mm256_xor_si256(c2[2603],_mm256_xor_si256(c2[3043],_mm256_xor_si256(c2[3504],_mm256_xor_si256(c2[9222],_mm256_xor_si256(c2[4825],c2[5265]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 44
d2[440]=_mm256_xor_si256(c2[5720],_mm256_xor_si256(c2[8367],_mm256_xor_si256(c2[3520],_mm256_xor_si256(c2[5],_mm256_xor_si256(c2[4407],_mm256_xor_si256(c2[8388],_mm256_xor_si256(c2[4868],_mm256_xor_si256(c2[8824],_mm256_xor_si256(c2[4881],_mm256_xor_si256(c2[4447],_mm256_xor_si256(c2[8840],_mm256_xor_si256(c2[9309],_mm256_xor_si256(c2[13708],_mm256_xor_si256(c2[949],_mm256_xor_si256(c2[4046],_mm256_xor_si256(c2[12406],_mm256_xor_si256(c2[4044],_mm256_xor_si256(c2[8905],_mm256_xor_si256(c2[2303],_mm256_xor_si256(c2[4509],_mm256_xor_si256(c2[4969],_mm256_xor_si256(c2[3205],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[4102],_mm256_xor_si256(c2[6304],_mm256_xor_si256(c2[8503],_mm256_xor_si256(c2[1467],_mm256_xor_si256(c2[3688],_mm256_xor_si256(c2[5444],_mm256_xor_si256(c2[8520],_mm256_xor_si256(c2[8548],_mm256_xor_si256(c2[8980],_mm256_xor_si256(c2[5020],_mm256_xor_si256(c2[1508],_mm256_xor_si256(c2[2843],_mm256_xor_si256(c2[6361],_mm256_xor_si256(c2[12966],_mm256_xor_si256(c2[12104],_mm256_xor_si256(c2[2422],_mm256_xor_si256(c2[8587],_mm256_xor_si256(c2[3763],_mm256_xor_si256(c2[7287],_mm256_xor_si256(c2[686],_mm256_xor_si256(c2[4222],_mm256_xor_si256(c2[5107],_mm256_xor_si256(c2[3783],_mm256_xor_si256(c2[7320],_mm256_xor_si256(c2[13926],_mm256_xor_si256(c2[11289],_mm256_xor_si256(c2[6467],_mm256_xor_si256(c2[6466],_mm256_xor_si256(c2[7787],_mm256_xor_si256(c2[8241],_mm256_xor_si256(c2[5600],_mm256_xor_si256(c2[7369],_mm256_xor_si256(c2[10460],_mm256_xor_si256(c2[12663],_mm256_xor_si256(c2[349],_mm256_xor_si256(c2[9601],_mm256_xor_si256(c2[11805],_mm256_xor_si256(c2[7840],_mm256_xor_si256(c2[9188],_mm256_xor_si256(c2[3906],_mm256_xor_si256(c2[4785],_mm256_xor_si256(c2[844],_mm256_xor_si256(c2[10966],_mm256_xor_si256(c2[1728],_mm256_xor_si256(c2[2189],_mm256_xor_si256(c2[7907],c2[3940])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 45
d2[450]=_mm256_xor_si256(c2[2223],_mm256_xor_si256(c2[1887],c2[13403]));
}
}
#include "PHY/sse_intrin.h"
// generated code for Zc=352, byte encoding
static inline void ldpc352_byte(uint8_t *c,uint8_t *d) {
__m256i *csimd=(__m256i *)c,*dsimd=(__m256i *)d;
__m256i *c2,*d2;
int i2;
for (i2=0; i2<11; i2++) {
c2=&csimd[i2];
d2=&dsimd[i2];
//row: 0
d2[0]=_mm256_xor_si256(c2[2913],_mm256_xor_si256(c2[6294],_mm256_xor_si256(c2[975],_mm256_xor_si256(c2[487],_mm256_xor_si256(c2[10673],_mm256_xor_si256(c2[1475],_mm256_xor_si256(c2[14544],_mm256_xor_si256(c2[3437],_mm256_xor_si256(c2[535],_mm256_xor_si256(c2[10214],_mm256_xor_si256(c2[4916],_mm256_xor_si256(c2[69],_mm256_xor_si256(c2[8295],_mm256_xor_si256(c2[8810],_mm256_xor_si256(c2[6873],_mm256_xor_si256(c2[11228],_mm256_xor_si256(c2[7376],_mm256_xor_si256(c2[5926],_mm256_xor_si256(c2[7373],_mm256_xor_si256(c2[2557],_mm256_xor_si256(c2[4496],_mm256_xor_si256(c2[5460],_mm256_xor_si256(c2[7901],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[3063],_mm256_xor_si256(c2[6961],_mm256_xor_si256(c2[6475],_mm256_xor_si256(c2[13246],_mm256_xor_si256(c2[9401],_mm256_xor_si256(c2[8911],_mm256_xor_si256(c2[3111],_mm256_xor_si256(c2[12811],_mm256_xor_si256(c2[15227],_mm256_xor_si256(c2[5063],_mm256_xor_si256(c2[726],_mm256_xor_si256(c2[3635],_mm256_xor_si256(c2[10897],_mm256_xor_si256(c2[9470],_mm256_xor_si256(c2[14307],_mm256_xor_si256(c2[12374],_mm256_xor_si256(c2[4648],_mm256_xor_si256(c2[7065],_mm256_xor_si256(c2[6586],_mm256_xor_si256(c2[7094],_mm256_xor_si256(c2[14836],_mm256_xor_si256(c2[12413],_mm256_xor_si256(c2[10495],_mm256_xor_si256(c2[9049],_mm256_xor_si256(c2[14369],_mm256_xor_si256(c2[13430],_mm256_xor_si256(c2[844],_mm256_xor_si256(c2[12459],_mm256_xor_si256(c2[2798],_mm256_xor_si256(c2[1830],_mm256_xor_si256(c2[11512],_mm256_xor_si256(c2[8149],_mm256_xor_si256(c2[1853],_mm256_xor_si256(c2[7660],_mm256_xor_si256(c2[3811],_mm256_xor_si256(c2[4774],_mm256_xor_si256(c2[9136],_mm256_xor_si256(c2[7701],_mm256_xor_si256(c2[3828],_mm256_xor_si256(c2[12543],_mm256_xor_si256(c2[14019],_mm256_xor_si256(c2[7247],c2[12565]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 1
d2[11]=_mm256_xor_si256(c2[2913],_mm256_xor_si256(c2[3397],_mm256_xor_si256(c2[6778],_mm256_xor_si256(c2[1459],_mm256_xor_si256(c2[971],_mm256_xor_si256(c2[10673],_mm256_xor_si256(c2[11157],_mm256_xor_si256(c2[1959],_mm256_xor_si256(c2[15028],_mm256_xor_si256(c2[3437],_mm256_xor_si256(c2[3921],_mm256_xor_si256(c2[1019],_mm256_xor_si256(c2[10698],_mm256_xor_si256(c2[4916],_mm256_xor_si256(c2[5400],_mm256_xor_si256(c2[553],_mm256_xor_si256(c2[8779],_mm256_xor_si256(c2[9294],_mm256_xor_si256(c2[7357],_mm256_xor_si256(c2[11712],_mm256_xor_si256(c2[7376],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[6410],_mm256_xor_si256(c2[7857],_mm256_xor_si256(c2[2557],_mm256_xor_si256(c2[3041],_mm256_xor_si256(c2[4980],_mm256_xor_si256(c2[5944],_mm256_xor_si256(c2[8385],_mm256_xor_si256(c2[642],_mm256_xor_si256(c2[3547],_mm256_xor_si256(c2[7445],_mm256_xor_si256(c2[6959],_mm256_xor_si256(c2[13730],_mm256_xor_si256(c2[9401],_mm256_xor_si256(c2[9885],_mm256_xor_si256(c2[9395],_mm256_xor_si256(c2[3595],_mm256_xor_si256(c2[12811],_mm256_xor_si256(c2[13295],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[5547],_mm256_xor_si256(c2[726],_mm256_xor_si256(c2[1210],_mm256_xor_si256(c2[4119],_mm256_xor_si256(c2[11381],_mm256_xor_si256(c2[9470],_mm256_xor_si256(c2[9954],_mm256_xor_si256(c2[14791],_mm256_xor_si256(c2[12858],_mm256_xor_si256(c2[4648],_mm256_xor_si256(c2[5132],_mm256_xor_si256(c2[7549],_mm256_xor_si256(c2[7070],_mm256_xor_si256(c2[7578],_mm256_xor_si256(c2[15320],_mm256_xor_si256(c2[12897],_mm256_xor_si256(c2[10495],_mm256_xor_si256(c2[10979],_mm256_xor_si256(c2[9533],_mm256_xor_si256(c2[14853],_mm256_xor_si256(c2[13430],_mm256_xor_si256(c2[13914],_mm256_xor_si256(c2[1328],_mm256_xor_si256(c2[12943],_mm256_xor_si256(c2[3282],_mm256_xor_si256(c2[2314],_mm256_xor_si256(c2[11996],_mm256_xor_si256(c2[8149],_mm256_xor_si256(c2[8633],_mm256_xor_si256(c2[2337],_mm256_xor_si256(c2[8144],_mm256_xor_si256(c2[3811],_mm256_xor_si256(c2[4295],_mm256_xor_si256(c2[5258],_mm256_xor_si256(c2[9620],_mm256_xor_si256(c2[7701],_mm256_xor_si256(c2[8185],_mm256_xor_si256(c2[4312],_mm256_xor_si256(c2[13027],_mm256_xor_si256(c2[14019],_mm256_xor_si256(c2[14503],_mm256_xor_si256(c2[7731],c2[13049])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 2
d2[22]=_mm256_xor_si256(c2[3397],_mm256_xor_si256(c2[6778],_mm256_xor_si256(c2[975],_mm256_xor_si256(c2[1459],_mm256_xor_si256(c2[487],_mm256_xor_si256(c2[971],_mm256_xor_si256(c2[11157],_mm256_xor_si256(c2[1475],_mm256_xor_si256(c2[1959],_mm256_xor_si256(c2[14544],_mm256_xor_si256(c2[15028],_mm256_xor_si256(c2[3921],_mm256_xor_si256(c2[1019],_mm256_xor_si256(c2[10214],_mm256_xor_si256(c2[10698],_mm256_xor_si256(c2[5400],_mm256_xor_si256(c2[553],_mm256_xor_si256(c2[8295],_mm256_xor_si256(c2[8779],_mm256_xor_si256(c2[9294],_mm256_xor_si256(c2[6873],_mm256_xor_si256(c2[7357],_mm256_xor_si256(c2[11228],_mm256_xor_si256(c2[11712],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[6410],_mm256_xor_si256(c2[7373],_mm256_xor_si256(c2[7857],_mm256_xor_si256(c2[3041],_mm256_xor_si256(c2[4496],_mm256_xor_si256(c2[4980],_mm256_xor_si256(c2[5460],_mm256_xor_si256(c2[5944],_mm256_xor_si256(c2[8385],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[642],_mm256_xor_si256(c2[3063],_mm256_xor_si256(c2[3547],_mm256_xor_si256(c2[7445],_mm256_xor_si256(c2[6475],_mm256_xor_si256(c2[6959],_mm256_xor_si256(c2[13246],_mm256_xor_si256(c2[13730],_mm256_xor_si256(c2[9885],_mm256_xor_si256(c2[9395],_mm256_xor_si256(c2[3111],_mm256_xor_si256(c2[3595],_mm256_xor_si256(c2[13295],_mm256_xor_si256(c2[15227],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[5063],_mm256_xor_si256(c2[5547],_mm256_xor_si256(c2[1210],_mm256_xor_si256(c2[4119],_mm256_xor_si256(c2[10897],_mm256_xor_si256(c2[11381],_mm256_xor_si256(c2[9954],_mm256_xor_si256(c2[14791],_mm256_xor_si256(c2[12374],_mm256_xor_si256(c2[12858],_mm256_xor_si256(c2[5132],_mm256_xor_si256(c2[7065],_mm256_xor_si256(c2[7549],_mm256_xor_si256(c2[6586],_mm256_xor_si256(c2[7070],_mm256_xor_si256(c2[7578],_mm256_xor_si256(c2[14836],_mm256_xor_si256(c2[15320],_mm256_xor_si256(c2[12413],_mm256_xor_si256(c2[12897],_mm256_xor_si256(c2[10979],_mm256_xor_si256(c2[9533],_mm256_xor_si256(c2[14369],_mm256_xor_si256(c2[14853],_mm256_xor_si256(c2[13914],_mm256_xor_si256(c2[1328],_mm256_xor_si256(c2[12459],_mm256_xor_si256(c2[12943],_mm256_xor_si256(c2[3282],_mm256_xor_si256(c2[1830],_mm256_xor_si256(c2[2314],_mm256_xor_si256(c2[11512],_mm256_xor_si256(c2[11996],_mm256_xor_si256(c2[8633],_mm256_xor_si256(c2[1853],_mm256_xor_si256(c2[2337],_mm256_xor_si256(c2[7660],_mm256_xor_si256(c2[8144],_mm256_xor_si256(c2[4295],_mm256_xor_si256(c2[5258],_mm256_xor_si256(c2[9136],_mm256_xor_si256(c2[9620],_mm256_xor_si256(c2[8185],_mm256_xor_si256(c2[3828],_mm256_xor_si256(c2[4312],_mm256_xor_si256(c2[12543],_mm256_xor_si256(c2[13027],_mm256_xor_si256(c2[14503],_mm256_xor_si256(c2[7731],_mm256_xor_si256(c2[12565],c2[13049]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 3
d2[33]=_mm256_xor_si256(c2[3397],_mm256_xor_si256(c2[6778],_mm256_xor_si256(c2[1459],_mm256_xor_si256(c2[487],_mm256_xor_si256(c2[971],_mm256_xor_si256(c2[11157],_mm256_xor_si256(c2[1959],_mm256_xor_si256(c2[14544],_mm256_xor_si256(c2[15028],_mm256_xor_si256(c2[3921],_mm256_xor_si256(c2[1019],_mm256_xor_si256(c2[10698],_mm256_xor_si256(c2[5400],_mm256_xor_si256(c2[553],_mm256_xor_si256(c2[8295],_mm256_xor_si256(c2[8779],_mm256_xor_si256(c2[9294],_mm256_xor_si256(c2[7357],_mm256_xor_si256(c2[11228],_mm256_xor_si256(c2[11712],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[6410],_mm256_xor_si256(c2[7857],_mm256_xor_si256(c2[3041],_mm256_xor_si256(c2[4980],_mm256_xor_si256(c2[5460],_mm256_xor_si256(c2[5944],_mm256_xor_si256(c2[8385],_mm256_xor_si256(c2[642],_mm256_xor_si256(c2[3063],_mm256_xor_si256(c2[3547],_mm256_xor_si256(c2[7445],_mm256_xor_si256(c2[6959],_mm256_xor_si256(c2[13246],_mm256_xor_si256(c2[13730],_mm256_xor_si256(c2[9885],_mm256_xor_si256(c2[9395],_mm256_xor_si256(c2[3595],_mm256_xor_si256(c2[13295],_mm256_xor_si256(c2[224],_mm256_xor_si256(c2[5063],_mm256_xor_si256(c2[5547],_mm256_xor_si256(c2[1210],_mm256_xor_si256(c2[4119],_mm256_xor_si256(c2[10897],_mm256_xor_si256(c2[11381],_mm256_xor_si256(c2[9954],_mm256_xor_si256(c2[14791],_mm256_xor_si256(c2[12374],_mm256_xor_si256(c2[12858],_mm256_xor_si256(c2[5132],_mm256_xor_si256(c2[7549],_mm256_xor_si256(c2[6586],_mm256_xor_si256(c2[7070],_mm256_xor_si256(c2[7578],_mm256_xor_si256(c2[15320],_mm256_xor_si256(c2[12413],_mm256_xor_si256(c2[12897],_mm256_xor_si256(c2[10979],_mm256_xor_si256(c2[9533],_mm256_xor_si256(c2[14853],_mm256_xor_si256(c2[13914],_mm256_xor_si256(c2[1328],_mm256_xor_si256(c2[12459],_mm256_xor_si256(c2[12943],_mm256_xor_si256(c2[3282],_mm256_xor_si256(c2[2314],_mm256_xor_si256(c2[11512],_mm256_xor_si256(c2[11996],_mm256_xor_si256(c2[8633],_mm256_xor_si256(c2[2337],_mm256_xor_si256(c2[7660],_mm256_xor_si256(c2[8144],_mm256_xor_si256(c2[4295],_mm256_xor_si256(c2[5258],_mm256_xor_si256(c2[9620],_mm256_xor_si256(c2[8185],_mm256_xor_si256(c2[4312],_mm256_xor_si256(c2[12543],_mm256_xor_si256(c2[13027],_mm256_xor_si256(c2[14503],_mm256_xor_si256(c2[7731],_mm256_xor_si256(c2[12565],c2[13049])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 4
d2[44]=_mm256_xor_si256(c2[4841],c2[30]);
//row: 5
d2[55]=_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[3872],_mm256_xor_si256(c2[14040],_mm256_xor_si256(c2[13552],_mm256_xor_si256(c2[13074],_mm256_xor_si256(c2[8251],_mm256_xor_si256(c2[14551],_mm256_xor_si256(c2[12122],_mm256_xor_si256(c2[994],_mm256_xor_si256(c2[1015],_mm256_xor_si256(c2[13600],_mm256_xor_si256(c2[7792],_mm256_xor_si256(c2[2494],_mm256_xor_si256(c2[13134],_mm256_xor_si256(c2[5884],_mm256_xor_si256(c2[13141],_mm256_xor_si256(c2[6388],_mm256_xor_si256(c2[4451],_mm256_xor_si256(c2[8806],_mm256_xor_si256(c2[4954],_mm256_xor_si256(c2[3504],_mm256_xor_si256(c2[4951],_mm256_xor_si256(c2[135],_mm256_xor_si256(c2[2074],_mm256_xor_si256(c2[3038],_mm256_xor_si256(c2[5479],_mm256_xor_si256(c2[13223],_mm256_xor_si256(c2[641],_mm256_xor_si256(c2[4539],_mm256_xor_si256(c2[4053],_mm256_xor_si256(c2[10824],_mm256_xor_si256(c2[6979],_mm256_xor_si256(c2[6500],_mm256_xor_si256(c2[689],_mm256_xor_si256(c2[10389],_mm256_xor_si256(c2[12805],_mm256_xor_si256(c2[2641],_mm256_xor_si256(c2[13802],_mm256_xor_si256(c2[1213],_mm256_xor_si256(c2[8475],_mm256_xor_si256(c2[7048],_mm256_xor_si256(c2[11885],_mm256_xor_si256(c2[9952],_mm256_xor_si256(c2[1242],_mm256_xor_si256(c2[2226],_mm256_xor_si256(c2[4643],_mm256_xor_si256(c2[4164],_mm256_xor_si256(c2[4672],_mm256_xor_si256(c2[12414],_mm256_xor_si256(c2[9991],_mm256_xor_si256(c2[8084],_mm256_xor_si256(c2[6627],_mm256_xor_si256(c2[11947],_mm256_xor_si256(c2[11008],_mm256_xor_si256(c2[13909],_mm256_xor_si256(c2[10037],_mm256_xor_si256(c2[3749],_mm256_xor_si256(c2[376],_mm256_xor_si256(c2[14895],_mm256_xor_si256(c2[9090],_mm256_xor_si256(c2[5727],_mm256_xor_si256(c2[14918],_mm256_xor_si256(c2[5238],_mm256_xor_si256(c2[1389],_mm256_xor_si256(c2[2363],_mm256_xor_si256(c2[6714],_mm256_xor_si256(c2[5290],_mm256_xor_si256(c2[1417],_mm256_xor_si256(c2[10121],_mm256_xor_si256(c2[11597],_mm256_xor_si256(c2[4825],_mm256_xor_si256(c2[10143],c2[1438]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 6
d2[66]=_mm256_xor_si256(c2[2913],_mm256_xor_si256(c2[4490],_mm256_xor_si256(c2[5070],_mm256_xor_si256(c2[1697],_mm256_xor_si256(c2[6099],_mm256_xor_si256(c2[11026],_mm256_xor_si256(c2[13956],c2[8677])))))));
//row: 7
d2[77]=_mm256_xor_si256(c2[1452],_mm256_xor_si256(c2[3413],_mm256_xor_si256(c2[95],_mm256_xor_si256(c2[4519],_mm256_xor_si256(c2[11314],c2[3697])))));
//row: 8
d2[88]=_mm256_xor_si256(c2[8],_mm256_xor_si256(c2[13073],_mm256_xor_si256(c2[3389],_mm256_xor_si256(c2[978],_mm256_xor_si256(c2[13557],_mm256_xor_si256(c2[10651],_mm256_xor_si256(c2[11135],_mm256_xor_si256(c2[13069],_mm256_xor_si256(c2[10174],_mm256_xor_si256(c2[10658],_mm256_xor_si256(c2[13562],_mm256_xor_si256(c2[7768],_mm256_xor_si256(c2[5346],_mm256_xor_si256(c2[14068],_mm256_xor_si256(c2[11162],_mm256_xor_si256(c2[11646],_mm256_xor_si256(c2[11639],_mm256_xor_si256(c2[8744],_mm256_xor_si256(c2[9228],_mm256_xor_si256(c2[5348],_mm256_xor_si256(c2[532],_mm256_xor_si256(c2[13597],_mm256_xor_si256(c2[13117],_mm256_xor_si256(c2[10695],_mm256_xor_si256(c2[7309],_mm256_xor_si256(c2[4403],_mm256_xor_si256(c2[4887],_mm256_xor_si256(c2[2011],_mm256_xor_si256(c2[15076],_mm256_xor_si256(c2[12651],_mm256_xor_si256(c2[10240],_mm256_xor_si256(c2[5390],_mm256_xor_si256(c2[2495],_mm256_xor_si256(c2[2979],_mm256_xor_si256(c2[10714],_mm256_xor_si256(c2[5905],_mm256_xor_si256(c2[3483],_mm256_xor_si256(c2[3968],_mm256_xor_si256(c2[1062],_mm256_xor_si256(c2[1546],_mm256_xor_si256(c2[8323],_mm256_xor_si256(c2[5417],_mm256_xor_si256(c2[5901],_mm256_xor_si256(c2[4471],_mm256_xor_si256(c2[2049],_mm256_xor_si256(c2[3021],_mm256_xor_si256(c2[599],_mm256_xor_si256(c2[4468],_mm256_xor_si256(c2[1562],_mm256_xor_si256(c2[2046],_mm256_xor_si256(c2[15139],_mm256_xor_si256(c2[12717],_mm256_xor_si256(c2[1591],_mm256_xor_si256(c2[14172],_mm256_xor_si256(c2[14656],_mm256_xor_si256(c2[2555],_mm256_xor_si256(c2[15136],_mm256_xor_si256(c2[133],_mm256_xor_si256(c2[4996],_mm256_xor_si256(c2[2574],_mm256_xor_si256(c2[12740],_mm256_xor_si256(c2[9834],_mm256_xor_si256(c2[10318],_mm256_xor_si256(c2[158],_mm256_xor_si256(c2[12739],_mm256_xor_si256(c2[13223],_mm256_xor_si256(c2[4056],_mm256_xor_si256(c2[1634],_mm256_xor_si256(c2[3570],_mm256_xor_si256(c2[664],_mm256_xor_si256(c2[1148],_mm256_xor_si256(c2[10341],_mm256_xor_si256(c2[7446],_mm256_xor_si256(c2[7930],_mm256_xor_si256(c2[6496],_mm256_xor_si256(c2[4074],_mm256_xor_si256(c2[6006],_mm256_xor_si256(c2[3595],_mm256_xor_si256(c2[206],_mm256_xor_si256(c2[12787],_mm256_xor_si256(c2[13271],_mm256_xor_si256(c2[9906],_mm256_xor_si256(c2[7484],_mm256_xor_si256(c2[12322],_mm256_xor_si256(c2[9416],_mm256_xor_si256(c2[9900],_mm256_xor_si256(c2[2158],_mm256_xor_si256(c2[14750],_mm256_xor_si256(c2[15234],_mm256_xor_si256(c2[13319],_mm256_xor_si256(c2[10897],_mm256_xor_si256(c2[730],_mm256_xor_si256(c2[13795],_mm256_xor_si256(c2[7992],_mm256_xor_si256(c2[5086],_mm256_xor_si256(c2[5570],_mm256_xor_si256(c2[6565],_mm256_xor_si256(c2[4143],_mm256_xor_si256(c2[11402],_mm256_xor_si256(c2[8980],_mm256_xor_si256(c2[9469],_mm256_xor_si256(c2[6563],_mm256_xor_si256(c2[7047],_mm256_xor_si256(c2[11889],_mm256_xor_si256(c2[1743],_mm256_xor_si256(c2[14808],_mm256_xor_si256(c2[4160],_mm256_xor_si256(c2[1254],_mm256_xor_si256(c2[1738],_mm256_xor_si256(c2[3681],_mm256_xor_si256(c2[775],_mm256_xor_si256(c2[1259],_mm256_xor_si256(c2[4189],_mm256_xor_si256(c2[1767],_mm256_xor_si256(c2[11931],_mm256_xor_si256(c2[9025],_mm256_xor_si256(c2[9509],_mm256_xor_si256(c2[9508],_mm256_xor_si256(c2[6602],_mm256_xor_si256(c2[7086],_mm256_xor_si256(c2[7590],_mm256_xor_si256(c2[5179],_mm256_xor_si256(c2[6144],_mm256_xor_si256(c2[3722],_mm256_xor_si256(c2[11464],_mm256_xor_si256(c2[8558],_mm256_xor_si256(c2[9042],_mm256_xor_si256(c2[10525],_mm256_xor_si256(c2[8103],_mm256_xor_si256(c2[13426],_mm256_xor_si256(c2[11004],_mm256_xor_si256(c2[9554],_mm256_xor_si256(c2[6648],_mm256_xor_si256(c2[7132],_mm256_xor_si256(c2[359],_mm256_xor_si256(c2[15380],_mm256_xor_si256(c2[12958],_mm256_xor_si256(c2[14412],_mm256_xor_si256(c2[11506],_mm256_xor_si256(c2[11990],_mm256_xor_si256(c2[8607],_mm256_xor_si256(c2[5701],_mm256_xor_si256(c2[6185],_mm256_xor_si256(c2[5244],_mm256_xor_si256(c2[2822],_mm256_xor_si256(c2[14435],_mm256_xor_si256(c2[11529],_mm256_xor_si256(c2[12013],_mm256_xor_si256(c2[4755],_mm256_xor_si256(c2[1849],_mm256_xor_si256(c2[2333],_mm256_xor_si256(c2[906],_mm256_xor_si256(c2[13971],_mm256_xor_si256(c2[1880],_mm256_xor_si256(c2[14945],_mm256_xor_si256(c2[6231],_mm256_xor_si256(c2[3325],_mm256_xor_si256(c2[3809],_mm256_xor_si256(c2[8646],_mm256_xor_si256(c2[4796],_mm256_xor_si256(c2[2385],_mm256_xor_si256(c2[934],_mm256_xor_si256(c2[13515],_mm256_xor_si256(c2[13999],_mm256_xor_si256(c2[9638],_mm256_xor_si256(c2[6732],_mm256_xor_si256(c2[7216],_mm256_xor_si256(c2[11114],_mm256_xor_si256(c2[8692],_mm256_xor_si256(c2[4342],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[9660],_mm256_xor_si256(c2[6754],_mm256_xor_si256(c2[7238],c2[13531]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 9
d2[99]=_mm256_xor_si256(c2[13556],_mm256_xor_si256(c2[11640],_mm256_xor_si256(c2[2649],_mm256_xor_si256(c2[7505],_mm256_xor_si256(c2[13840],_mm256_xor_si256(c2[11994],_mm256_xor_si256(c2[11528],c2[8678])))))));
//row: 10
d2[110]=_mm256_xor_si256(c2[7287],_mm256_xor_si256(c2[14087],_mm256_xor_si256(c2[13156],_mm256_xor_si256(c2[3549],_mm256_xor_si256(c2[8405],c2[5640])))));
//row: 11
d2[121]=_mm256_xor_si256(c2[11624],_mm256_xor_si256(c2[2908],_mm256_xor_si256(c2[3392],_mm256_xor_si256(c2[15005],_mm256_xor_si256(c2[6784],_mm256_xor_si256(c2[9686],_mm256_xor_si256(c2[1454],_mm256_xor_si256(c2[9198],_mm256_xor_si256(c2[977],_mm256_xor_si256(c2[12100],_mm256_xor_si256(c2[3897],_mm256_xor_si256(c2[10679],_mm256_xor_si256(c2[11163],_mm256_xor_si256(c2[10186],_mm256_xor_si256(c2[1965],_mm256_xor_si256(c2[7768],_mm256_xor_si256(c2[15034],_mm256_xor_si256(c2[1000],_mm256_xor_si256(c2[12148],_mm256_xor_si256(c2[3432],_mm256_xor_si256(c2[3916],_mm256_xor_si256(c2[9246],_mm256_xor_si256(c2[1014],_mm256_xor_si256(c2[3438],_mm256_xor_si256(c2[10693],_mm256_xor_si256(c2[13627],_mm256_xor_si256(c2[4911],_mm256_xor_si256(c2[5395],_mm256_xor_si256(c2[8780],_mm256_xor_si256(c2[559],_mm256_xor_si256(c2[1519],_mm256_xor_si256(c2[8785],_mm256_xor_si256(c2[2034],_mm256_xor_si256(c2[9289],_mm256_xor_si256(c2[97],_mm256_xor_si256(c2[7352],_mm256_xor_si256(c2[4452],_mm256_xor_si256(c2[11707],_mm256_xor_si256(c2[600],_mm256_xor_si256(c2[7371],_mm256_xor_si256(c2[7855],_mm256_xor_si256(c2[14637],_mm256_xor_si256(c2[6405],_mm256_xor_si256(c2[597],_mm256_xor_si256(c2[7863],_mm256_xor_si256(c2[11268],_mm256_xor_si256(c2[2552],_mm256_xor_si256(c2[3036],_mm256_xor_si256(c2[13207],_mm256_xor_si256(c2[4975],_mm256_xor_si256(c2[14171],_mm256_xor_si256(c2[5950],_mm256_xor_si256(c2[1125],_mm256_xor_si256(c2[8391],_mm256_xor_si256(c2[8869],_mm256_xor_si256(c2[648],_mm256_xor_si256(c2[11774],_mm256_xor_si256(c2[3542],_mm256_xor_si256(c2[185],_mm256_xor_si256(c2[7440],_mm256_xor_si256(c2[15186],_mm256_xor_si256(c2[6954],_mm256_xor_si256(c2[6470],_mm256_xor_si256(c2[13736],_mm256_xor_si256(c2[2625],_mm256_xor_si256(c2[9396],_mm256_xor_si256(c2[9880],_mm256_xor_si256(c2[2135],_mm256_xor_si256(c2[9401],_mm256_xor_si256(c2[11822],_mm256_xor_si256(c2[3590],_mm256_xor_si256(c2[6035],_mm256_xor_si256(c2[12806],_mm256_xor_si256(c2[13290],_mm256_xor_si256(c2[8451],_mm256_xor_si256(c2[230],_mm256_xor_si256(c2[13774],_mm256_xor_si256(c2[5553],_mm256_xor_si256(c2[9448],_mm256_xor_si256(c2[732],_mm256_xor_si256(c2[1216],_mm256_xor_si256(c2[12346],_mm256_xor_si256(c2[4114],_mm256_xor_si256(c2[4121],_mm256_xor_si256(c2[11376],_mm256_xor_si256(c2[2694],_mm256_xor_si256(c2[9465],_mm256_xor_si256(c2[9949],_mm256_xor_si256(c2[7531],_mm256_xor_si256(c2[14786],_mm256_xor_si256(c2[5598],_mm256_xor_si256(c2[12853],_mm256_xor_si256(c2[4142],_mm256_xor_si256(c2[13359],_mm256_xor_si256(c2[4643],_mm256_xor_si256(c2[5127],_mm256_xor_si256(c2[289],_mm256_xor_si256(c2[7555],_mm256_xor_si256(c2[15297],_mm256_xor_si256(c2[7065],_mm256_xor_si256(c2[318],_mm256_xor_si256(c2[7573],_mm256_xor_si256(c2[8060],_mm256_xor_si256(c2[15315],_mm256_xor_si256(c2[5637],_mm256_xor_si256(c2[12892],_mm256_xor_si256(c2[3719],_mm256_xor_si256(c2[10501],_mm256_xor_si256(c2[10985],_mm256_xor_si256(c2[2273],_mm256_xor_si256(c2[9528],_mm256_xor_si256(c2[7593],_mm256_xor_si256(c2[14859],_mm256_xor_si256(c2[6654],_mm256_xor_si256(c2[13425],_mm256_xor_si256(c2[13909],_mm256_xor_si256(c2[9555],_mm256_xor_si256(c2[1323],_mm256_xor_si256(c2[5683],_mm256_xor_si256(c2[12938],_mm256_xor_si256(c2[15366],_mm256_xor_si256(c2[11509],_mm256_xor_si256(c2[3288],_mm256_xor_si256(c2[10541],_mm256_xor_si256(c2[2320],_mm256_xor_si256(c2[4736],_mm256_xor_si256(c2[11991],_mm256_xor_si256(c2[1373],_mm256_xor_si256(c2[8144],_mm256_xor_si256(c2[8628],_mm256_xor_si256(c2[10564],_mm256_xor_si256(c2[2332],_mm256_xor_si256(c2[884],_mm256_xor_si256(c2[8150],_mm256_xor_si256(c2[12522],_mm256_xor_si256(c2[3806],_mm256_xor_si256(c2[4290],_mm256_xor_si256(c2[13496],_mm256_xor_si256(c2[5264],_mm256_xor_si256(c2[2360],_mm256_xor_si256(c2[9615],_mm256_xor_si256(c2[925],_mm256_xor_si256(c2[7707],_mm256_xor_si256(c2[8191],_mm256_xor_si256(c2[12550],_mm256_xor_si256(c2[4318],_mm256_xor_si256(c2[5767],_mm256_xor_si256(c2[13033],_mm256_xor_si256(c2[7243],_mm256_xor_si256(c2[14014],_mm256_xor_si256(c2[14498],_mm256_xor_si256(c2[471],_mm256_xor_si256(c2[7726],_mm256_xor_si256(c2[5789],_mm256_xor_si256(c2[13055],c2[3371])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 12
d2[132]=_mm256_xor_si256(c2[13071],_mm256_xor_si256(c2[12128],_mm256_xor_si256(c2[7000],_mm256_xor_si256(c2[7021],_mm256_xor_si256(c2[8035],c2[6206])))));
//row: 13
d2[143]=_mm256_xor_si256(c2[11132],_mm256_xor_si256(c2[11616],_mm256_xor_si256(c2[15008],_mm256_xor_si256(c2[9689],_mm256_xor_si256(c2[9201],_mm256_xor_si256(c2[11141],_mm256_xor_si256(c2[3416],_mm256_xor_si256(c2[3900],_mm256_xor_si256(c2[10189],_mm256_xor_si256(c2[7771],_mm256_xor_si256(c2[11667],_mm256_xor_si256(c2[12151],_mm256_xor_si256(c2[9249],_mm256_xor_si256(c2[3441],_mm256_xor_si256(c2[13135],_mm256_xor_si256(c2[13619],_mm256_xor_si256(c2[8783],_mm256_xor_si256(c2[1522],_mm256_xor_si256(c2[13141],_mm256_xor_si256(c2[2026],_mm256_xor_si256(c2[89],_mm256_xor_si256(c2[4444],_mm256_xor_si256(c2[119],_mm256_xor_si256(c2[603],_mm256_xor_si256(c2[14640],_mm256_xor_si256(c2[600],_mm256_xor_si256(c2[10787],_mm256_xor_si256(c2[11271],_mm256_xor_si256(c2[13210],_mm256_xor_si256(c2[14174],_mm256_xor_si256(c2[1128],_mm256_xor_si256(c2[8872],_mm256_xor_si256(c2[11777],_mm256_xor_si256(c2[4518],_mm256_xor_si256(c2[177],_mm256_xor_si256(c2[15189],_mm256_xor_si256(c2[6473],_mm256_xor_si256(c2[2144],_mm256_xor_si256(c2[2628],_mm256_xor_si256(c2[2138],_mm256_xor_si256(c2[11814],_mm256_xor_si256(c2[5554],_mm256_xor_si256(c2[6038],_mm256_xor_si256(c2[8454],_mm256_xor_si256(c2[13777],_mm256_xor_si256(c2[8956],_mm256_xor_si256(c2[9440],_mm256_xor_si256(c2[12349],_mm256_xor_si256(c2[4124],_mm256_xor_si256(c2[2202],_mm256_xor_si256(c2[2686],_mm256_xor_si256(c2[7534],_mm256_xor_si256(c2[5590],_mm256_xor_si256(c2[12878],_mm256_xor_si256(c2[13362],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[15300],_mm256_xor_si256(c2[310],_mm256_xor_si256(c2[8052],_mm256_xor_si256(c2[5640],_mm256_xor_si256(c2[3238],_mm256_xor_si256(c2[3722],_mm256_xor_si256(c2[2276],_mm256_xor_si256(c2[7596],_mm256_xor_si256(c2[6162],_mm256_xor_si256(c2[6646],_mm256_xor_si256(c2[9558],_mm256_xor_si256(c2[5686],_mm256_xor_si256(c2[11512],_mm256_xor_si256(c2[10544],_mm256_xor_si256(c2[4739],_mm256_xor_si256(c2[881],_mm256_xor_si256(c2[1365],_mm256_xor_si256(c2[10567],_mm256_xor_si256(c2[887],_mm256_xor_si256(c2[12041],_mm256_xor_si256(c2[12525],_mm256_xor_si256(c2[13488],_mm256_xor_si256(c2[2363],_mm256_xor_si256(c2[444],_mm256_xor_si256(c2[928],_mm256_xor_si256(c2[12542],_mm256_xor_si256(c2[5770],_mm256_xor_si256(c2[14962],_mm256_xor_si256(c2[6762],_mm256_xor_si256(c2[7246],_mm256_xor_si256(c2[463],c2[5792])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 14
d2[154]=_mm256_xor_si256(c2[10648],_mm256_xor_si256(c2[1242],_mm256_xor_si256(c2[10502],_mm256_xor_si256(c2[13908],_mm256_xor_si256(c2[1344],c2[7240])))));
//row: 15
d2[165]=_mm256_xor_si256(c2[11617],_mm256_xor_si256(c2[15009],_mm256_xor_si256(c2[9690],_mm256_xor_si256(c2[8718],_mm256_xor_si256(c2[9202],_mm256_xor_si256(c2[7749],_mm256_xor_si256(c2[3901],_mm256_xor_si256(c2[10190],_mm256_xor_si256(c2[7288],_mm256_xor_si256(c2[7772],_mm256_xor_si256(c2[13584],_mm256_xor_si256(c2[12152],_mm256_xor_si256(c2[9250],_mm256_xor_si256(c2[3442],_mm256_xor_si256(c2[13620],_mm256_xor_si256(c2[8784],_mm256_xor_si256(c2[1039],_mm256_xor_si256(c2[1523],_mm256_xor_si256(c2[2027],_mm256_xor_si256(c2[90],_mm256_xor_si256(c2[3961],_mm256_xor_si256(c2[4445],_mm256_xor_si256(c2[604],_mm256_xor_si256(c2[14630],_mm256_xor_si256(c2[601],_mm256_xor_si256(c2[11272],_mm256_xor_si256(c2[13200],_mm256_xor_si256(c2[13691],_mm256_xor_si256(c2[14175],_mm256_xor_si256(c2[1129],_mm256_xor_si256(c2[8873],_mm256_xor_si256(c2[11294],_mm256_xor_si256(c2[11778],_mm256_xor_si256(c2[178],_mm256_xor_si256(c2[15190],_mm256_xor_si256(c2[5990],_mm256_xor_si256(c2[6474],_mm256_xor_si256(c2[2618],_mm256_xor_si256(c2[2139],_mm256_xor_si256(c2[11815],_mm256_xor_si256(c2[6028],_mm256_xor_si256(c2[8455],_mm256_xor_si256(c2[13294],_mm256_xor_si256(c2[13778],_mm256_xor_si256(c2[7480],_mm256_xor_si256(c2[9441],_mm256_xor_si256(c2[12350],_mm256_xor_si256(c2[3630],_mm256_xor_si256(c2[4114],_mm256_xor_si256(c2[2687],_mm256_xor_si256(c2[7524],_mm256_xor_si256(c2[5107],_mm256_xor_si256(c2[5591],_mm256_xor_si256(c2[13363],_mm256_xor_si256(c2[293],_mm256_xor_si256(c2[14806],_mm256_xor_si256(c2[15290],_mm256_xor_si256(c2[8516],_mm256_xor_si256(c2[311],_mm256_xor_si256(c2[8053],_mm256_xor_si256(c2[5157],_mm256_xor_si256(c2[5641],_mm256_xor_si256(c2[3723],_mm256_xor_si256(c2[2266],_mm256_xor_si256(c2[7597],_mm256_xor_si256(c2[6647],_mm256_xor_si256(c2[9548],_mm256_xor_si256(c2[5192],_mm256_xor_si256(c2[5676],_mm256_xor_si256(c2[11513],_mm256_xor_si256(c2[10545],_mm256_xor_si256(c2[4256],_mm256_xor_si256(c2[4740],_mm256_xor_si256(c2[1366],_mm256_xor_si256(c2[10568],_mm256_xor_si256(c2[404],_mm256_xor_si256(c2[888],_mm256_xor_si256(c2[8145],_mm256_xor_si256(c2[12526],_mm256_xor_si256(c2[13489],_mm256_xor_si256(c2[2364],_mm256_xor_si256(c2[929],_mm256_xor_si256(c2[12543],_mm256_xor_si256(c2[5287],_mm256_xor_si256(c2[5771],_mm256_xor_si256(c2[7247],_mm256_xor_si256(c2[464],_mm256_xor_si256(c2[5309],c2[5793]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 16
d2[176]=_mm256_xor_si256(c2[11617],_mm256_xor_si256(c2[15009],_mm256_xor_si256(c2[9690],_mm256_xor_si256(c2[9202],_mm256_xor_si256(c2[3901],_mm256_xor_si256(c2[10190],_mm256_xor_si256(c2[7772],_mm256_xor_si256(c2[14547],_mm256_xor_si256(c2[12152],_mm256_xor_si256(c2[9250],_mm256_xor_si256(c2[3442],_mm256_xor_si256(c2[13620],_mm256_xor_si256(c2[8784],_mm256_xor_si256(c2[1523],_mm256_xor_si256(c2[2495],_mm256_xor_si256(c2[2027],_mm256_xor_si256(c2[90],_mm256_xor_si256(c2[4445],_mm256_xor_si256(c2[604],_mm256_xor_si256(c2[14630],_mm256_xor_si256(c2[601],_mm256_xor_si256(c2[11272],_mm256_xor_si256(c2[13200],_mm256_xor_si256(c2[14175],_mm256_xor_si256(c2[1129],_mm256_xor_si256(c2[8873],_mm256_xor_si256(c2[11778],_mm256_xor_si256(c2[178],_mm256_xor_si256(c2[15190],_mm256_xor_si256(c2[6474],_mm256_xor_si256(c2[2618],_mm256_xor_si256(c2[2139],_mm256_xor_si256(c2[11815],_mm256_xor_si256(c2[6028],_mm256_xor_si256(c2[8455],_mm256_xor_si256(c2[13778],_mm256_xor_si256(c2[9441],_mm256_xor_si256(c2[12350],_mm256_xor_si256(c2[4114],_mm256_xor_si256(c2[6060],_mm256_xor_si256(c2[2687],_mm256_xor_si256(c2[7524],_mm256_xor_si256(c2[5591],_mm256_xor_si256(c2[13363],_mm256_xor_si256(c2[293],_mm256_xor_si256(c2[15290],_mm256_xor_si256(c2[311],_mm256_xor_si256(c2[8053],_mm256_xor_si256(c2[5641],_mm256_xor_si256(c2[3723],_mm256_xor_si256(c2[2266],_mm256_xor_si256(c2[7597],_mm256_xor_si256(c2[6647],_mm256_xor_si256(c2[9548],_mm256_xor_si256(c2[5676],_mm256_xor_si256(c2[11513],_mm256_xor_si256(c2[10545],_mm256_xor_si256(c2[4740],_mm256_xor_si256(c2[1366],_mm256_xor_si256(c2[10568],_mm256_xor_si256(c2[888],_mm256_xor_si256(c2[12526],_mm256_xor_si256(c2[13489],_mm256_xor_si256(c2[2364],_mm256_xor_si256(c2[929],_mm256_xor_si256(c2[12543],_mm256_xor_si256(c2[5771],_mm256_xor_si256(c2[5774],_mm256_xor_si256(c2[7247],_mm256_xor_si256(c2[464],c2[5793]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 17
d2[187]=_mm256_xor_si256(c2[6779],_mm256_xor_si256(c2[2251],_mm256_xor_si256(c2[11491],_mm256_xor_si256(c2[10057],c2[14987]))));
//row: 18
d2[198]=_mm256_xor_si256(c2[7283],_mm256_xor_si256(c2[14792],_mm256_xor_si256(c2[10941],_mm256_xor_si256(c2[10565],c2[4776]))));
//row: 19
d2[209]=_mm256_xor_si256(c2[11134],_mm256_xor_si256(c2[6801],_mm256_xor_si256(c2[9354],_mm256_xor_si256(c2[1152],c2[6034]))));
//row: 20
d2[220]=_mm256_xor_si256(c2[1946],_mm256_xor_si256(c2[5327],_mm256_xor_si256(c2[8],_mm256_xor_si256(c2[15007],_mm256_xor_si256(c2[12102],_mm256_xor_si256(c2[9706],_mm256_xor_si256(c2[508],_mm256_xor_si256(c2[13577],_mm256_xor_si256(c2[2470],_mm256_xor_si256(c2[15055],_mm256_xor_si256(c2[9247],_mm256_xor_si256(c2[3938],_mm256_xor_si256(c2[14589],_mm256_xor_si256(c2[7328],_mm256_xor_si256(c2[552],_mm256_xor_si256(c2[7832],_mm256_xor_si256(c2[5906],_mm256_xor_si256(c2[10261],_mm256_xor_si256(c2[6409],_mm256_xor_si256(c2[4959],_mm256_xor_si256(c2[6406],_mm256_xor_si256(c2[1590],_mm256_xor_si256(c2[3529],_mm256_xor_si256(c2[4493],_mm256_xor_si256(c2[6934],_mm256_xor_si256(c2[14678],_mm256_xor_si256(c2[2096],_mm256_xor_si256(c2[5994],_mm256_xor_si256(c2[5508],_mm256_xor_si256(c2[12279],_mm256_xor_si256(c2[8434],_mm256_xor_si256(c2[7944],_mm256_xor_si256(c2[2144],_mm256_xor_si256(c2[13270],_mm256_xor_si256(c2[11844],_mm256_xor_si256(c2[14260],_mm256_xor_si256(c2[4096],_mm256_xor_si256(c2[15246],_mm256_xor_si256(c2[2668],_mm256_xor_si256(c2[9930],_mm256_xor_si256(c2[9929],_mm256_xor_si256(c2[8492],_mm256_xor_si256(c2[13340],_mm256_xor_si256(c2[11396],_mm256_xor_si256(c2[3681],_mm256_xor_si256(c2[6098],_mm256_xor_si256(c2[5619],_mm256_xor_si256(c2[6116],_mm256_xor_si256(c2[13869],_mm256_xor_si256(c2[11446],_mm256_xor_si256(c2[9528],_mm256_xor_si256(c2[8082],_mm256_xor_si256(c2[13402],_mm256_xor_si256(c2[12452],_mm256_xor_si256(c2[15364],_mm256_xor_si256(c2[11492],_mm256_xor_si256(c2[1831],_mm256_xor_si256(c2[863],_mm256_xor_si256(c2[10545],_mm256_xor_si256(c2[7182],_mm256_xor_si256(c2[886],_mm256_xor_si256(c2[6693],_mm256_xor_si256(c2[2844],_mm256_xor_si256(c2[3807],_mm256_xor_si256(c2[8169],_mm256_xor_si256(c2[6734],_mm256_xor_si256(c2[2861],_mm256_xor_si256(c2[11576],_mm256_xor_si256(c2[13052],_mm256_xor_si256(c2[6280],c2[11598]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 21
d2[231]=_mm256_xor_si256(c2[995],_mm256_xor_si256(c2[3990],_mm256_xor_si256(c2[12946],_mm256_xor_si256(c2[7704],c2[6757]))));
//row: 22
d2[242]=_mm256_xor_si256(c2[11624],_mm256_xor_si256(c2[14304],_mm256_xor_si256(c2[6101],c2[8605])));
//row: 23
d2[253]=_mm256_xor_si256(c2[8734],_mm256_xor_si256(c2[2948],_mm256_xor_si256(c2[10389],c2[8149])));
//row: 24
d2[264]=_mm256_xor_si256(c2[3876],_mm256_xor_si256(c2[7268],_mm256_xor_si256(c2[1938],_mm256_xor_si256(c2[1461],_mm256_xor_si256(c2[2905],_mm256_xor_si256(c2[11647],_mm256_xor_si256(c2[2449],_mm256_xor_si256(c2[31],_mm256_xor_si256(c2[4400],_mm256_xor_si256(c2[1498],_mm256_xor_si256(c2[11177],_mm256_xor_si256(c2[5879],_mm256_xor_si256(c2[1043],_mm256_xor_si256(c2[9269],_mm256_xor_si256(c2[4911],_mm256_xor_si256(c2[9773],_mm256_xor_si256(c2[7836],_mm256_xor_si256(c2[12191],_mm256_xor_si256(c2[12195],_mm256_xor_si256(c2[8339],_mm256_xor_si256(c2[6889],_mm256_xor_si256(c2[8347],_mm256_xor_si256(c2[3520],_mm256_xor_si256(c2[5459],_mm256_xor_si256(c2[6434],_mm256_xor_si256(c2[8875],_mm256_xor_si256(c2[1132],_mm256_xor_si256(c2[4026],_mm256_xor_si256(c2[7924],_mm256_xor_si256(c2[7438],_mm256_xor_si256(c2[14220],_mm256_xor_si256(c2[10364],_mm256_xor_si256(c2[9885],_mm256_xor_si256(c2[4074],_mm256_xor_si256(c2[13774],_mm256_xor_si256(c2[714],_mm256_xor_si256(c2[6037],_mm256_xor_si256(c2[1700],_mm256_xor_si256(c2[4598],_mm256_xor_si256(c2[11860],_mm256_xor_si256(c2[251],_mm256_xor_si256(c2[10433],_mm256_xor_si256(c2[15270],_mm256_xor_si256(c2[13337],_mm256_xor_si256(c2[5611],_mm256_xor_si256(c2[8039],_mm256_xor_si256(c2[7549],_mm256_xor_si256(c2[8057],_mm256_xor_si256(c2[312],_mm256_xor_si256(c2[13376],_mm256_xor_si256(c2[11469],_mm256_xor_si256(c2[10012],_mm256_xor_si256(c2[15343],_mm256_xor_si256(c2[14393],_mm256_xor_si256(c2[1807],_mm256_xor_si256(c2[13422],_mm256_xor_si256(c2[3772],_mm256_xor_si256(c2[2804],_mm256_xor_si256(c2[12475],_mm256_xor_si256(c2[9112],_mm256_xor_si256(c2[2816],_mm256_xor_si256(c2[8634],_mm256_xor_si256(c2[4774],_mm256_xor_si256(c2[5748],_mm256_xor_si256(c2[10099],_mm256_xor_si256(c2[8675],_mm256_xor_si256(c2[4802],_mm256_xor_si256(c2[13517],_mm256_xor_si256(c2[14982],_mm256_xor_si256(c2[8210],c2[13539]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 25
d2[275]=_mm256_xor_si256(c2[11162],_mm256_xor_si256(c2[15143],_mm256_xor_si256(c2[7417],c2[10957])));
//row: 26
d2[286]=_mm256_xor_si256(c2[2430],_mm256_xor_si256(c2[2958],_mm256_xor_si256(c2[1063],c2[1785])));
//row: 27
d2[297]=_mm256_xor_si256(c2[13092],_mm256_xor_si256(c2[3046],c2[5992]));
//row: 28
d2[308]=_mm256_xor_si256(c2[2907],_mm256_xor_si256(c2[572],_mm256_xor_si256(c2[4291],c2[3855])));
//row: 29
d2[319]=_mm256_xor_si256(c2[8713],_mm256_xor_si256(c2[12105],_mm256_xor_si256(c2[6786],_mm256_xor_si256(c2[5814],_mm256_xor_si256(c2[6298],_mm256_xor_si256(c2[997],_mm256_xor_si256(c2[7286],_mm256_xor_si256(c2[4384],_mm256_xor_si256(c2[4868],_mm256_xor_si256(c2[8258],_mm256_xor_si256(c2[9248],_mm256_xor_si256(c2[6346],_mm256_xor_si256(c2[538],_mm256_xor_si256(c2[10716],_mm256_xor_si256(c2[5880],_mm256_xor_si256(c2[13622],_mm256_xor_si256(c2[14106],_mm256_xor_si256(c2[14610],_mm256_xor_si256(c2[12673],_mm256_xor_si256(c2[1057],_mm256_xor_si256(c2[1541],_mm256_xor_si256(c2[13187],_mm256_xor_si256(c2[11726],_mm256_xor_si256(c2[13184],_mm256_xor_si256(c2[8368],_mm256_xor_si256(c2[10296],_mm256_xor_si256(c2[10787],_mm256_xor_si256(c2[11271],_mm256_xor_si256(c2[13712],_mm256_xor_si256(c2[5969],_mm256_xor_si256(c2[8390],_mm256_xor_si256(c2[8874],_mm256_xor_si256(c2[12761],_mm256_xor_si256(c2[12286],_mm256_xor_si256(c2[3086],_mm256_xor_si256(c2[3570],_mm256_xor_si256(c2[15212],_mm256_xor_si256(c2[14722],_mm256_xor_si256(c2[8911],_mm256_xor_si256(c2[3124],_mm256_xor_si256(c2[5551],_mm256_xor_si256(c2[10390],_mm256_xor_si256(c2[10874],_mm256_xor_si256(c2[6537],_mm256_xor_si256(c2[9446],_mm256_xor_si256(c2[726],_mm256_xor_si256(c2[1210],_mm256_xor_si256(c2[15270],_mm256_xor_si256(c2[4620],_mm256_xor_si256(c2[2203],_mm256_xor_si256(c2[2687],_mm256_xor_si256(c2[10459],_mm256_xor_si256(c2[12876],_mm256_xor_si256(c2[11902],_mm256_xor_si256(c2[12386],_mm256_xor_si256(c2[12894],_mm256_xor_si256(c2[5149],_mm256_xor_si256(c2[2253],_mm256_xor_si256(c2[2737],_mm256_xor_si256(c2[4183],_mm256_xor_si256(c2[819],_mm256_xor_si256(c2[14860],_mm256_xor_si256(c2[4693],_mm256_xor_si256(c2[3743],_mm256_xor_si256(c2[6644],_mm256_xor_si256(c2[2288],_mm256_xor_si256(c2[2772],_mm256_xor_si256(c2[8609],_mm256_xor_si256(c2[7641],_mm256_xor_si256(c2[1352],_mm256_xor_si256(c2[1836],_mm256_xor_si256(c2[13949],_mm256_xor_si256(c2[7664],_mm256_xor_si256(c2[12987],_mm256_xor_si256(c2[13471],_mm256_xor_si256(c2[9599],_mm256_xor_si256(c2[9622],_mm256_xor_si256(c2[10585],_mm256_xor_si256(c2[14947],_mm256_xor_si256(c2[13512],_mm256_xor_si256(c2[9639],_mm256_xor_si256(c2[2383],_mm256_xor_si256(c2[2867],_mm256_xor_si256(c2[4343],_mm256_xor_si256(c2[13047],_mm256_xor_si256(c2[2405],c2[2889]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 30
d2[330]=_mm256_xor_si256(c2[13072],_mm256_xor_si256(c2[977],_mm256_xor_si256(c2[10650],_mm256_xor_si256(c2[11134],_mm256_xor_si256(c2[10173],_mm256_xor_si256(c2[10657],_mm256_xor_si256(c2[5329],_mm256_xor_si256(c2[5356],_mm256_xor_si256(c2[11161],_mm256_xor_si256(c2[11645],_mm256_xor_si256(c2[8743],_mm256_xor_si256(c2[9227],_mm256_xor_si256(c2[13596],_mm256_xor_si256(c2[10694],_mm256_xor_si256(c2[4402],_mm256_xor_si256(c2[4886],_mm256_xor_si256(c2[15075],_mm256_xor_si256(c2[10239],_mm256_xor_si256(c2[2494],_mm256_xor_si256(c2[2978],_mm256_xor_si256(c2[3482],_mm256_xor_si256(c2[1061],_mm256_xor_si256(c2[1545],_mm256_xor_si256(c2[5416],_mm256_xor_si256(c2[5900],_mm256_xor_si256(c2[2048],_mm256_xor_si256(c2[598],_mm256_xor_si256(c2[1572],_mm256_xor_si256(c2[2056],_mm256_xor_si256(c2[12716],_mm256_xor_si256(c2[14171],_mm256_xor_si256(c2[14655],_mm256_xor_si256(c2[15146],_mm256_xor_si256(c2[132],_mm256_xor_si256(c2[2584],_mm256_xor_si256(c2[9844],_mm256_xor_si256(c2[10328],_mm256_xor_si256(c2[12738],_mm256_xor_si256(c2[13222],_mm256_xor_si256(c2[1633],_mm256_xor_si256(c2[663],_mm256_xor_si256(c2[1147],_mm256_xor_si256(c2[7445],_mm256_xor_si256(c2[7929],_mm256_xor_si256(c2[4073],_mm256_xor_si256(c2[3594],_mm256_xor_si256(c2[12786],_mm256_xor_si256(c2[13270],_mm256_xor_si256(c2[7483],_mm256_xor_si256(c2[9426],_mm256_xor_si256(c2[9910],_mm256_xor_si256(c2[14749],_mm256_xor_si256(c2[15233],_mm256_xor_si256(c2[7964],_mm256_xor_si256(c2[10896],_mm256_xor_si256(c2[13794],_mm256_xor_si256(c2[5085],_mm256_xor_si256(c2[5569],_mm256_xor_si256(c2[4142],_mm256_xor_si256(c2[8979],_mm256_xor_si256(c2[6562],_mm256_xor_si256(c2[7046],_mm256_xor_si256(c2[14807],_mm256_xor_si256(c2[1264],_mm256_xor_si256(c2[1748],_mm256_xor_si256(c2[774],_mm256_xor_si256(c2[1258],_mm256_xor_si256(c2[15292],_mm256_xor_si256(c2[1766],_mm256_xor_si256(c2[9024],_mm256_xor_si256(c2[9508],_mm256_xor_si256(c2[6601],_mm256_xor_si256(c2[7085],_mm256_xor_si256(c2[5178],_mm256_xor_si256(c2[3721],_mm256_xor_si256(c2[8568],_mm256_xor_si256(c2[9052],_mm256_xor_si256(c2[8102],_mm256_xor_si256(c2[11003],_mm256_xor_si256(c2[6647],_mm256_xor_si256(c2[7131],_mm256_xor_si256(c2[12968],_mm256_xor_si256(c2[11516],_mm256_xor_si256(c2[12000],_mm256_xor_si256(c2[5700],_mm256_xor_si256(c2[6184],_mm256_xor_si256(c2[2821],_mm256_xor_si256(c2[11528],_mm256_xor_si256(c2[12012],_mm256_xor_si256(c2[1848],_mm256_xor_si256(c2[2332],_mm256_xor_si256(c2[13970],_mm256_xor_si256(c2[14944],_mm256_xor_si256(c2[3324],_mm256_xor_si256(c2[3808],_mm256_xor_si256(c2[2384],_mm256_xor_si256(c2[13514],_mm256_xor_si256(c2[13998],_mm256_xor_si256(c2[6742],_mm256_xor_si256(c2[7226],_mm256_xor_si256(c2[8691],_mm256_xor_si256(c2[1919],_mm256_xor_si256(c2[6764],c2[7248])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 31
d2[341]=_mm256_xor_si256(c2[14042],_mm256_xor_si256(c2[2425],_mm256_xor_si256(c2[1936],_mm256_xor_si256(c2[5817],_mm256_xor_si256(c2[12104],_mm256_xor_si256(c2[487],_mm256_xor_si256(c2[11616],_mm256_xor_si256(c2[15013],_mm256_xor_si256(c2[10],_mm256_xor_si256(c2[6315],_mm256_xor_si256(c2[10196],_mm256_xor_si256(c2[12615],_mm256_xor_si256(c2[998],_mm256_xor_si256(c2[10186],_mm256_xor_si256(c2[13583],_mm256_xor_si256(c2[14067],_mm256_xor_si256(c2[2445],_mm256_xor_si256(c2[14566],_mm256_xor_si256(c2[2949],_mm256_xor_si256(c2[11664],_mm256_xor_si256(c2[47],_mm256_xor_si256(c2[5856],_mm256_xor_si256(c2[9726],_mm256_xor_si256(c2[558],_mm256_xor_si256(c2[4428],_mm256_xor_si256(c2[11198],_mm256_xor_si256(c2[15079],_mm256_xor_si256(c2[3948],_mm256_xor_si256(c2[7334],_mm256_xor_si256(c2[7818],_mm256_xor_si256(c2[4452],_mm256_xor_si256(c2[8322],_mm256_xor_si256(c2[2515],_mm256_xor_si256(c2[6385],_mm256_xor_si256(c2[6870],_mm256_xor_si256(c2[10256],_mm256_xor_si256(c2[10740],_mm256_xor_si256(c2[3018],_mm256_xor_si256(c2[6888],_mm256_xor_si256(c2[1568],_mm256_xor_si256(c2[5438],_mm256_xor_si256(c2[3015],_mm256_xor_si256(c2[6896],_mm256_xor_si256(c2[13686],_mm256_xor_si256(c2[2069],_mm256_xor_si256(c2[138],_mm256_xor_si256(c2[4008],_mm256_xor_si256(c2[1102],_mm256_xor_si256(c2[4488],_mm256_xor_si256(c2[4972],_mm256_xor_si256(c2[3543],_mm256_xor_si256(c2[7424],_mm256_xor_si256(c2[11287],_mm256_xor_si256(c2[15168],_mm256_xor_si256(c2[14192],_mm256_xor_si256(c2[2091],_mm256_xor_si256(c2[2575],_mm256_xor_si256(c2[4519],_mm256_xor_si256(c2[2603],_mm256_xor_si256(c2[6473],_mm256_xor_si256(c2[2117],_mm256_xor_si256(c2[5987],_mm256_xor_si256(c2[8888],_mm256_xor_si256(c2[12285],_mm256_xor_si256(c2[12769],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[8913],_mm256_xor_si256(c2[4564],_mm256_xor_si256(c2[8434],_mm256_xor_si256(c2[14240],_mm256_xor_si256(c2[2623],_mm256_xor_si256(c2[8453],_mm256_xor_si256(c2[12323],_mm256_xor_si256(c2[10869],_mm256_xor_si256(c2[14750],_mm256_xor_si256(c2[705],_mm256_xor_si256(c2[4102],_mm256_xor_si256(c2[4586],_mm256_xor_si256(c2[11866],_mm256_xor_si256(c2[249],_mm256_xor_si256(c2[14764],_mm256_xor_si256(c2[3147],_mm256_xor_si256(c2[6539],_mm256_xor_si256(c2[9925],_mm256_xor_si256(c2[10409],_mm256_xor_si256(c2[5112],_mm256_xor_si256(c2[8982],_mm256_xor_si256(c2[9949],_mm256_xor_si256(c2[13819],_mm256_xor_si256(c2[8016],_mm256_xor_si256(c2[11402],_mm256_xor_si256(c2[11886],_mm256_xor_si256(c2[290],_mm256_xor_si256(c2[4160],_mm256_xor_si256(c2[2707],_mm256_xor_si256(c2[6588],_mm256_xor_si256(c2[2228],_mm256_xor_si256(c2[5614],_mm256_xor_si256(c2[6098],_mm256_xor_si256(c2[2736],_mm256_xor_si256(c2[6606],_mm256_xor_si256(c2[10478],_mm256_xor_si256(c2[14348],_mm256_xor_si256(c2[8055],_mm256_xor_si256(c2[11441],_mm256_xor_si256(c2[11925],_mm256_xor_si256(c2[6148],_mm256_xor_si256(c2[10018],_mm256_xor_si256(c2[4691],_mm256_xor_si256(c2[8561],_mm256_xor_si256(c2[10011],_mm256_xor_si256(c2[13892],_mm256_xor_si256(c2[9072],_mm256_xor_si256(c2[12942],_mm256_xor_si256(c2[11973],_mm256_xor_si256(c2[356],_mm256_xor_si256(c2[8101],_mm256_xor_si256(c2[11487],_mm256_xor_si256(c2[11971],_mm256_xor_si256(c2[13927],_mm256_xor_si256(c2[2310],_mm256_xor_si256(c2[12959],_mm256_xor_si256(c2[1342],_mm256_xor_si256(c2[7154],_mm256_xor_si256(c2[10540],_mm256_xor_si256(c2[11024],_mm256_xor_si256(c2[3791],_mm256_xor_si256(c2[7661],_mm256_xor_si256(c2[12982],_mm256_xor_si256(c2[1365],_mm256_xor_si256(c2[3302],_mm256_xor_si256(c2[6688],_mm256_xor_si256(c2[7172],_mm256_xor_si256(c2[14940],_mm256_xor_si256(c2[3323],_mm256_xor_si256(c2[427],_mm256_xor_si256(c2[4297],_mm256_xor_si256(c2[4778],_mm256_xor_si256(c2[8648],_mm256_xor_si256(c2[3354],_mm256_xor_si256(c2[7224],_mm256_xor_si256(c2[14968],_mm256_xor_si256(c2[3351],_mm256_xor_si256(c2[8185],_mm256_xor_si256(c2[11582],_mm256_xor_si256(c2[12066],_mm256_xor_si256(c2[9661],_mm256_xor_si256(c2[13531],_mm256_xor_si256(c2[2889],_mm256_xor_si256(c2[6759],_mm256_xor_si256(c2[8207],_mm256_xor_si256(c2[11604],c2[12088]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 32
d2[352]=_mm256_xor_si256(c2[12584],_mm256_xor_si256(c2[489],_mm256_xor_si256(c2[10173],_mm256_xor_si256(c2[10657],_mm256_xor_si256(c2[9685],_mm256_xor_si256(c2[10169],_mm256_xor_si256(c2[15014],_mm256_xor_si256(c2[4868],_mm256_xor_si256(c2[10673],_mm256_xor_si256(c2[11157],_mm256_xor_si256(c2[8255],_mm256_xor_si256(c2[8739],_mm256_xor_si256(c2[13119],_mm256_xor_si256(c2[10217],_mm256_xor_si256(c2[3925],_mm256_xor_si256(c2[4409],_mm256_xor_si256(c2[14587],_mm256_xor_si256(c2[9751],_mm256_xor_si256(c2[2006],_mm256_xor_si256(c2[2490],_mm256_xor_si256(c2[2994],_mm256_xor_si256(c2[573],_mm256_xor_si256(c2[1057],_mm256_xor_si256(c2[4928],_mm256_xor_si256(c2[5412],_mm256_xor_si256(c2[1571],_mm256_xor_si256(c2[110],_mm256_xor_si256(c2[1084],_mm256_xor_si256(c2[1568],_mm256_xor_si256(c2[12239],_mm256_xor_si256(c2[13694],_mm256_xor_si256(c2[14178],_mm256_xor_si256(c2[14658],_mm256_xor_si256(c2[15142],_mm256_xor_si256(c2[2096],_mm256_xor_si256(c2[9356],_mm256_xor_si256(c2[9840],_mm256_xor_si256(c2[12261],_mm256_xor_si256(c2[12745],_mm256_xor_si256(c2[1145],_mm256_xor_si256(c2[186],_mm256_xor_si256(c2[670],_mm256_xor_si256(c2[6957],_mm256_xor_si256(c2[7441],_mm256_xor_si256(c2[3596],_mm256_xor_si256(c2[3106],_mm256_xor_si256(c2[12298],_mm256_xor_si256(c2[12782],_mm256_xor_si256(c2[7006],_mm256_xor_si256(c2[8938],_mm256_xor_si256(c2[9422],_mm256_xor_si256(c2[14261],_mm256_xor_si256(c2[14745],_mm256_xor_si256(c2[10408],_mm256_xor_si256(c2[13317],_mm256_xor_si256(c2[4608],_mm256_xor_si256(c2[5092],_mm256_xor_si256(c2[3654],_mm256_xor_si256(c2[8502],_mm256_xor_si256(c2[6074],_mm256_xor_si256(c2[6558],_mm256_xor_si256(c2[4628],_mm256_xor_si256(c2[14330],_mm256_xor_si256(c2[776],_mm256_xor_si256(c2[1260],_mm256_xor_si256(c2[286],_mm256_xor_si256(c2[770],_mm256_xor_si256(c2[1278],_mm256_xor_si256(c2[8536],_mm256_xor_si256(c2[9020],_mm256_xor_si256(c2[6124],_mm256_xor_si256(c2[6608],_mm256_xor_si256(c2[9030],_mm256_xor_si256(c2[4690],_mm256_xor_si256(c2[3244],_mm256_xor_si256(c2[8080],_mm256_xor_si256(c2[8564],_mm256_xor_si256(c2[7614],_mm256_xor_si256(c2[10526],_mm256_xor_si256(c2[6170],_mm256_xor_si256(c2[6654],_mm256_xor_si256(c2[12480],_mm256_xor_si256(c2[11028],_mm256_xor_si256(c2[11512],_mm256_xor_si256(c2[5223],_mm256_xor_si256(c2[5707],_mm256_xor_si256(c2[2333],_mm256_xor_si256(c2[11051],_mm256_xor_si256(c2[11535],_mm256_xor_si256(c2[1371],_mm256_xor_si256(c2[1855],_mm256_xor_si256(c2[13493],_mm256_xor_si256(c2[14456],_mm256_xor_si256(c2[2847],_mm256_xor_si256(c2[3331],_mm256_xor_si256(c2[1896],_mm256_xor_si256(c2[13026],_mm256_xor_si256(c2[13510],_mm256_xor_si256(c2[6254],_mm256_xor_si256(c2[6738],_mm256_xor_si256(c2[8214],_mm256_xor_si256(c2[1431],_mm256_xor_si256(c2[6276],c2[6760])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 33
d2[363]=_mm256_xor_si256(c2[11639],_mm256_xor_si256(c2[7797],_mm256_xor_si256(c2[6538],c2[2885])));
//row: 34
d2[374]=_mm256_xor_si256(c2[13553],_mm256_xor_si256(c2[164],_mm256_xor_si256(c2[8077],c2[11023])));
//row: 35
d2[385]=_mm256_xor_si256(c2[8718],_mm256_xor_si256(c2[12110],_mm256_xor_si256(c2[6780],_mm256_xor_si256(c2[6292],_mm256_xor_si256(c2[991],_mm256_xor_si256(c2[7291],_mm256_xor_si256(c2[4862],_mm256_xor_si256(c2[1961],_mm256_xor_si256(c2[9242],_mm256_xor_si256(c2[6340],_mm256_xor_si256(c2[532],_mm256_xor_si256(c2[10721],_mm256_xor_si256(c2[5874],_mm256_xor_si256(c2[14111],_mm256_xor_si256(c2[14615],_mm256_xor_si256(c2[12678],_mm256_xor_si256(c2[1546],_mm256_xor_si256(c2[13181],_mm256_xor_si256(c2[11731],_mm256_xor_si256(c2[13178],_mm256_xor_si256(c2[8362],_mm256_xor_si256(c2[10301],_mm256_xor_si256(c2[11265],_mm256_xor_si256(c2[8850],_mm256_xor_si256(c2[13706],_mm256_xor_si256(c2[5963],_mm256_xor_si256(c2[8868],_mm256_xor_si256(c2[12766],_mm256_xor_si256(c2[12280],_mm256_xor_si256(c2[3564],_mm256_xor_si256(c2[15206],_mm256_xor_si256(c2[14727],_mm256_xor_si256(c2[8916],_mm256_xor_si256(c2[3129],_mm256_xor_si256(c2[5545],_mm256_xor_si256(c2[10868],_mm256_xor_si256(c2[6542],_mm256_xor_si256(c2[9440],_mm256_xor_si256(c2[1215],_mm256_xor_si256(c2[15275],_mm256_xor_si256(c2[4625],_mm256_xor_si256(c2[2692],_mm256_xor_si256(c2[1722],_mm256_xor_si256(c2[10453],_mm256_xor_si256(c2[12870],_mm256_xor_si256(c2[12391],_mm256_xor_si256(c2[12899],_mm256_xor_si256(c2[5154],_mm256_xor_si256(c2[2731],_mm256_xor_si256(c2[824],_mm256_xor_si256(c2[14854],_mm256_xor_si256(c2[4687],_mm256_xor_si256(c2[3748],_mm256_xor_si256(c2[6649],_mm256_xor_si256(c2[2777],_mm256_xor_si256(c2[8603],_mm256_xor_si256(c2[7635],_mm256_xor_si256(c2[1830],_mm256_xor_si256(c2[13954],_mm256_xor_si256(c2[7658],_mm256_xor_si256(c2[13465],_mm256_xor_si256(c2[9616],_mm256_xor_si256(c2[10590],_mm256_xor_si256(c2[14941],_mm256_xor_si256(c2[13517],_mm256_xor_si256(c2[9644],_mm256_xor_si256(c2[2861],_mm256_xor_si256(c2[4337],_mm256_xor_si256(c2[13052],c2[2883])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 36
d2[396]=_mm256_xor_si256(c2[3392],_mm256_xor_si256(c2[7568],_mm256_xor_si256(c2[1783],c2[13953])));
//row: 37
d2[407]=_mm256_xor_si256(c2[13068],_mm256_xor_si256(c2[13552],_mm256_xor_si256(c2[1457],_mm256_xor_si256(c2[11625],_mm256_xor_si256(c2[11137],_mm256_xor_si256(c2[5352],_mm256_xor_si256(c2[5836],_mm256_xor_si256(c2[12125],_mm256_xor_si256(c2[9707],_mm256_xor_si256(c2[15035],_mm256_xor_si256(c2[13603],_mm256_xor_si256(c2[14087],_mm256_xor_si256(c2[11185],_mm256_xor_si256(c2[5377],_mm256_xor_si256(c2[15071],_mm256_xor_si256(c2[68],_mm256_xor_si256(c2[10719],_mm256_xor_si256(c2[3458],_mm256_xor_si256(c2[3962],_mm256_xor_si256(c2[2025],_mm256_xor_si256(c2[6380],_mm256_xor_si256(c2[2055],_mm256_xor_si256(c2[2539],_mm256_xor_si256(c2[1078],_mm256_xor_si256(c2[2536],_mm256_xor_si256(c2[12723],_mm256_xor_si256(c2[13207],_mm256_xor_si256(c2[15146],_mm256_xor_si256(c2[623],_mm256_xor_si256(c2[3064],_mm256_xor_si256(c2[10808],_mm256_xor_si256(c2[13713],_mm256_xor_si256(c2[2113],_mm256_xor_si256(c2[1638],_mm256_xor_si256(c2[8409],_mm256_xor_si256(c2[4080],_mm256_xor_si256(c2[4564],_mm256_xor_si256(c2[4074],_mm256_xor_si256(c2[13750],_mm256_xor_si256(c2[7490],_mm256_xor_si256(c2[7974],_mm256_xor_si256(c2[10390],_mm256_xor_si256(c2[226],_mm256_xor_si256(c2[10892],_mm256_xor_si256(c2[11376],_mm256_xor_si256(c2[14285],_mm256_xor_si256(c2[6060],_mm256_xor_si256(c2[4138],_mm256_xor_si256(c2[4622],_mm256_xor_si256(c2[9470],_mm256_xor_si256(c2[7526],_mm256_xor_si256(c2[14814],_mm256_xor_si256(c2[15298],_mm256_xor_si256(c2[2228],_mm256_xor_si256(c2[1738],_mm256_xor_si256(c2[6101],_mm256_xor_si256(c2[2246],_mm256_xor_si256(c2[9988],_mm256_xor_si256(c2[7576],_mm256_xor_si256(c2[5174],_mm256_xor_si256(c2[5658],_mm256_xor_si256(c2[4212],_mm256_xor_si256(c2[9532],_mm256_xor_si256(c2[8098],_mm256_xor_si256(c2[8582],_mm256_xor_si256(c2[11494],_mm256_xor_si256(c2[7622],_mm256_xor_si256(c2[13448],_mm256_xor_si256(c2[12480],_mm256_xor_si256(c2[6675],_mm256_xor_si256(c2[2817],_mm256_xor_si256(c2[3301],_mm256_xor_si256(c2[12503],_mm256_xor_si256(c2[2823],_mm256_xor_si256(c2[13977],_mm256_xor_si256(c2[14461],_mm256_xor_si256(c2[15424],_mm256_xor_si256(c2[4299],_mm256_xor_si256(c2[2380],_mm256_xor_si256(c2[2864],_mm256_xor_si256(c2[14478],_mm256_xor_si256(c2[7706],_mm256_xor_si256(c2[8698],_mm256_xor_si256(c2[9182],_mm256_xor_si256(c2[2399],c2[7728])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 38
d2[418]=_mm256_xor_si256(c2[1941],_mm256_xor_si256(c2[2140],_mm256_xor_si256(c2[8454],c2[10919])));
//row: 39
d2[429]=_mm256_xor_si256(c2[5837],_mm256_xor_si256(c2[3946],_mm256_xor_si256(c2[2575],c2[8170])));
//row: 40
d2[440]=_mm256_xor_si256(c2[7753],_mm256_xor_si256(c2[6475],c2[3766]));
//row: 41
d2[451]=_mm256_xor_si256(c2[13093],_mm256_xor_si256(c2[6360],_mm256_xor_si256(c2[12298],c2[8148])));
//row: 42
d2[462]=_mm256_xor_si256(c2[11625],_mm256_xor_si256(c2[15006],_mm256_xor_si256(c2[9203],_mm256_xor_si256(c2[9687],_mm256_xor_si256(c2[8715],_mm256_xor_si256(c2[9199],_mm256_xor_si256(c2[9],_mm256_xor_si256(c2[3898],_mm256_xor_si256(c2[9703],_mm256_xor_si256(c2[10187],_mm256_xor_si256(c2[7285],_mm256_xor_si256(c2[7769],_mm256_xor_si256(c2[12149],_mm256_xor_si256(c2[9247],_mm256_xor_si256(c2[2955],_mm256_xor_si256(c2[3439],_mm256_xor_si256(c2[13628],_mm256_xor_si256(c2[8781],_mm256_xor_si256(c2[1036],_mm256_xor_si256(c2[1520],_mm256_xor_si256(c2[2024],_mm256_xor_si256(c2[15101],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[3969],_mm256_xor_si256(c2[4453],_mm256_xor_si256(c2[9286],_mm256_xor_si256(c2[601],_mm256_xor_si256(c2[14638],_mm256_xor_si256(c2[114],_mm256_xor_si256(c2[598],_mm256_xor_si256(c2[11269],_mm256_xor_si256(c2[12724],_mm256_xor_si256(c2[13208],_mm256_xor_si256(c2[13688],_mm256_xor_si256(c2[14172],_mm256_xor_si256(c2[1126],_mm256_xor_si256(c2[8386],_mm256_xor_si256(c2[8870],_mm256_xor_si256(c2[11291],_mm256_xor_si256(c2[11775],_mm256_xor_si256(c2[186],_mm256_xor_si256(c2[14703],_mm256_xor_si256(c2[15187],_mm256_xor_si256(c2[5987],_mm256_xor_si256(c2[6471],_mm256_xor_si256(c2[2626],_mm256_xor_si256(c2[2136],_mm256_xor_si256(c2[11339],_mm256_xor_si256(c2[11823],_mm256_xor_si256(c2[6036],_mm256_xor_si256(c2[7968],_mm256_xor_si256(c2[8452],_mm256_xor_si256(c2[13291],_mm256_xor_si256(c2[13775],_mm256_xor_si256(c2[9438],_mm256_xor_si256(c2[12347],_mm256_xor_si256(c2[3638],_mm256_xor_si256(c2[4122],_mm256_xor_si256(c2[2684],_mm256_xor_si256(c2[7532],_mm256_xor_si256(c2[5104],_mm256_xor_si256(c2[5588],_mm256_xor_si256(c2[13360],_mm256_xor_si256(c2[15293],_mm256_xor_si256(c2[290],_mm256_xor_si256(c2[14814],_mm256_xor_si256(c2[15298],_mm256_xor_si256(c2[308],_mm256_xor_si256(c2[7577],_mm256_xor_si256(c2[8061],_mm256_xor_si256(c2[5154],_mm256_xor_si256(c2[5638],_mm256_xor_si256(c2[3720],_mm256_xor_si256(c2[2274],_mm256_xor_si256(c2[7110],_mm256_xor_si256(c2[7594],_mm256_xor_si256(c2[6644],_mm256_xor_si256(c2[9556],_mm256_xor_si256(c2[5200],_mm256_xor_si256(c2[5684],_mm256_xor_si256(c2[11510],_mm256_xor_si256(c2[10058],_mm256_xor_si256(c2[10542],_mm256_xor_si256(c2[4253],_mm256_xor_si256(c2[4737],_mm256_xor_si256(c2[1374],_mm256_xor_si256(c2[10081],_mm256_xor_si256(c2[10565],_mm256_xor_si256(c2[401],_mm256_xor_si256(c2[885],_mm256_xor_si256(c2[12523],_mm256_xor_si256(c2[13486],_mm256_xor_si256(c2[1877],_mm256_xor_si256(c2[2361],_mm256_xor_si256(c2[926],_mm256_xor_si256(c2[12056],_mm256_xor_si256(c2[12540],_mm256_xor_si256(c2[5284],_mm256_xor_si256(c2[5768],_mm256_xor_si256(c2[7244],_mm256_xor_si256(c2[472],_mm256_xor_si256(c2[5306],c2[5790]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 43
d2[473]=_mm256_xor_si256(c2[6779],_mm256_xor_si256(c2[10171],_mm256_xor_si256(c2[4841],_mm256_xor_si256(c2[3880],_mm256_xor_si256(c2[4364],_mm256_xor_si256(c2[14550],_mm256_xor_si256(c2[5352],_mm256_xor_si256(c2[2450],_mm256_xor_si256(c2[2934],_mm256_xor_si256(c2[8740],_mm256_xor_si256(c2[7314],_mm256_xor_si256(c2[4401],_mm256_xor_si256(c2[14080],_mm256_xor_si256(c2[8782],_mm256_xor_si256(c2[3946],_mm256_xor_si256(c2[11688],_mm256_xor_si256(c2[12172],_mm256_xor_si256(c2[12676],_mm256_xor_si256(c2[10739],_mm256_xor_si256(c2[14610],_mm256_xor_si256(c2[15094],_mm256_xor_si256(c2[11242],_mm256_xor_si256(c2[9792],_mm256_xor_si256(c2[11250],_mm256_xor_si256(c2[6434],_mm256_xor_si256(c2[8362],_mm256_xor_si256(c2[8853],_mm256_xor_si256(c2[9337],_mm256_xor_si256(c2[11778],_mm256_xor_si256(c2[4035],_mm256_xor_si256(c2[6456],_mm256_xor_si256(c2[6940],_mm256_xor_si256(c2[10827],_mm256_xor_si256(c2[10341],_mm256_xor_si256(c2[1152],_mm256_xor_si256(c2[1636],_mm256_xor_si256(c2[13267],_mm256_xor_si256(c2[12788],_mm256_xor_si256(c2[6977],_mm256_xor_si256(c2[1190],_mm256_xor_si256(c2[3617],_mm256_xor_si256(c2[8456],_mm256_xor_si256(c2[8940],_mm256_xor_si256(c2[4603],_mm256_xor_si256(c2[7512],_mm256_xor_si256(c2[14279],_mm256_xor_si256(c2[14763],_mm256_xor_si256(c2[13336],_mm256_xor_si256(c2[2686],_mm256_xor_si256(c2[269],_mm256_xor_si256(c2[753],_mm256_xor_si256(c2[8514],_mm256_xor_si256(c2[10942],_mm256_xor_si256(c2[9968],_mm256_xor_si256(c2[10452],_mm256_xor_si256(c2[10960],_mm256_xor_si256(c2[3215],_mm256_xor_si256(c2[308],_mm256_xor_si256(c2[792],_mm256_xor_si256(c2[14372],_mm256_xor_si256(c2[12915],_mm256_xor_si256(c2[2759],_mm256_xor_si256(c2[1809],_mm256_xor_si256(c2[4710],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[838],_mm256_xor_si256(c2[1804],_mm256_xor_si256(c2[6675],_mm256_xor_si256(c2[5707],_mm256_xor_si256(c2[14894],_mm256_xor_si256(c2[15378],_mm256_xor_si256(c2[12015],_mm256_xor_si256(c2[5730],_mm256_xor_si256(c2[11053],_mm256_xor_si256(c2[11537],_mm256_xor_si256(c2[10561],_mm256_xor_si256(c2[7688],_mm256_xor_si256(c2[8651],_mm256_xor_si256(c2[13002],_mm256_xor_si256(c2[11578],_mm256_xor_si256(c2[7705],_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[933],_mm256_xor_si256(c2[2398],_mm256_xor_si256(c2[11113],_mm256_xor_si256(c2[471],c2[955]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 44
d2[484]=_mm256_xor_si256(c2[10654],_mm256_xor_si256(c2[14046],_mm256_xor_si256(c2[8716],_mm256_xor_si256(c2[8228],_mm256_xor_si256(c2[7262],_mm256_xor_si256(c2[2927],_mm256_xor_si256(c2[9227],_mm256_xor_si256(c2[6798],_mm256_xor_si256(c2[11178],_mm256_xor_si256(c2[8276],_mm256_xor_si256(c2[2468],_mm256_xor_si256(c2[12657],_mm256_xor_si256(c2[7810],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[1064],_mm256_xor_si256(c2[14614],_mm256_xor_si256(c2[3482],_mm256_xor_si256(c2[15117],_mm256_xor_si256(c2[13667],_mm256_xor_si256(c2[15114],_mm256_xor_si256(c2[10298],_mm256_xor_si256(c2[12237],_mm256_xor_si256(c2[13201],_mm256_xor_si256(c2[155],_mm256_xor_si256(c2[7899],_mm256_xor_si256(c2[10804],_mm256_xor_si256(c2[9841],_mm256_xor_si256(c2[14702],_mm256_xor_si256(c2[14216],_mm256_xor_si256(c2[5500],_mm256_xor_si256(c2[1655],_mm256_xor_si256(c2[1176],_mm256_xor_si256(c2[10852],_mm256_xor_si256(c2[2627],_mm256_xor_si256(c2[5065],_mm256_xor_si256(c2[7481],_mm256_xor_si256(c2[12804],_mm256_xor_si256(c2[8478],_mm256_xor_si256(c2[11376],_mm256_xor_si256(c2[3151],_mm256_xor_si256(c2[1724],_mm256_xor_si256(c2[6561],_mm256_xor_si256(c2[4628],_mm256_xor_si256(c2[12389],_mm256_xor_si256(c2[14806],_mm256_xor_si256(c2[14327],_mm256_xor_si256(c2[14835],_mm256_xor_si256(c2[7090],_mm256_xor_si256(c2[4667],_mm256_xor_si256(c2[2760],_mm256_xor_si256(c2[1303],_mm256_xor_si256(c2[6623],_mm256_xor_si256(c2[5684],_mm256_xor_si256(c2[8585],_mm256_xor_si256(c2[4713],_mm256_xor_si256(c2[10539],_mm256_xor_si256(c2[9571],_mm256_xor_si256(c2[3766],_mm256_xor_si256(c2[403],_mm256_xor_si256(c2[9594],_mm256_xor_si256(c2[15401],_mm256_xor_si256(c2[11552],_mm256_xor_si256(c2[12526],_mm256_xor_si256(c2[1390],_mm256_xor_si256(c2[15453],_mm256_xor_si256(c2[11580],_mm256_xor_si256(c2[4797],_mm256_xor_si256(c2[6273],_mm256_xor_si256(c2[14988],c2[4819])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 45
d2[495]=_mm256_xor_si256(c2[8736],_mm256_xor_si256(c2[1586],c2[5551]));
}
}
#include "PHY/sse_intrin.h"
// generated code for Zc=384, byte encoding
static inline void ldpc384_byte(uint8_t *c,uint8_t *d) {
__m256i *csimd=(__m256i *)c,*dsimd=(__m256i *)d;
__m256i *c2,*d2;
int i2;
for (i2=0; i2<12; i2++) {
c2=&csimd[i2];
d2=&dsimd[i2];
//row: 0
d2[0]=_mm256_xor_si256(c2[10041],_mm256_xor_si256(c2[6338],_mm256_xor_si256(c2[6870],_mm256_xor_si256(c2[10568],_mm256_xor_si256(c2[10056],_mm256_xor_si256(c2[13759],_mm256_xor_si256(c2[12170],_mm256_xor_si256(c2[9553],_mm256_xor_si256(c2[6386],_mm256_xor_si256(c2[4282],_mm256_xor_si256(c2[9059],_mm256_xor_si256(c2[4826],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[105],_mm256_xor_si256(c2[6442],_mm256_xor_si256(c2[10136],_mm256_xor_si256(c2[11213],_mm256_xor_si256(c2[8572],_mm256_xor_si256(c2[128],_mm256_xor_si256(c2[12822],_mm256_xor_si256(c2[677],_mm256_xor_si256(c2[3846],_mm256_xor_si256(c2[5986],_mm256_xor_si256(c2[5984],_mm256_xor_si256(c2[13372],_mm256_xor_si256(c2[6010],_mm256_xor_si256(c2[197],_mm256_xor_si256(c2[12865],_mm256_xor_si256(c2[15537],_mm256_xor_si256(c2[9725],_mm256_xor_si256(c2[16585],_mm256_xor_si256(c2[249],_mm256_xor_si256(c2[772],_mm256_xor_si256(c2[2356],_mm256_xor_si256(c2[7131],_mm256_xor_si256(c2[3969],_mm256_xor_si256(c2[9249],_mm256_xor_si256(c2[9264],_mm256_xor_si256(c2[11914],_mm256_xor_si256(c2[3991],_mm256_xor_si256(c2[2963],_mm256_xor_si256(c2[4542],_mm256_xor_si256(c2[11410],_mm256_xor_si256(c2[13542],_mm256_xor_si256(c2[13010],_mm256_xor_si256(c2[10902],_mm256_xor_si256(c2[12510],_mm256_xor_si256(c2[1947],_mm256_xor_si256(c2[11449],_mm256_xor_si256(c2[5667],_mm256_xor_si256(c2[1451],_mm256_xor_si256(c2[8841],_mm256_xor_si256(c2[9915],_mm256_xor_si256(c2[1996],_mm256_xor_si256(c2[6753],_mm256_xor_si256(c2[9943],_mm256_xor_si256(c2[8887],_mm256_xor_si256(c2[8360],_mm256_xor_si256(c2[11021],_mm256_xor_si256(c2[6274],_mm256_xor_si256(c2[7326],_mm256_xor_si256(c2[5770],_mm256_xor_si256(c2[7344],_mm256_xor_si256(c2[4177],_mm256_xor_si256(c2[14242],_mm256_xor_si256(c2[8955],c2[3155]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 1
d2[12]=_mm256_xor_si256(c2[10041],_mm256_xor_si256(c2[10569],_mm256_xor_si256(c2[6866],_mm256_xor_si256(c2[7398],_mm256_xor_si256(c2[11096],_mm256_xor_si256(c2[10056],_mm256_xor_si256(c2[10584],_mm256_xor_si256(c2[14287],_mm256_xor_si256(c2[12698],_mm256_xor_si256(c2[9553],_mm256_xor_si256(c2[10081],_mm256_xor_si256(c2[6914],_mm256_xor_si256(c2[4810],_mm256_xor_si256(c2[9059],_mm256_xor_si256(c2[9587],_mm256_xor_si256(c2[5354],_mm256_xor_si256(c2[600],_mm256_xor_si256(c2[633],_mm256_xor_si256(c2[6970],_mm256_xor_si256(c2[10664],_mm256_xor_si256(c2[11213],_mm256_xor_si256(c2[11741],_mm256_xor_si256(c2[9100],_mm256_xor_si256(c2[656],_mm256_xor_si256(c2[12822],_mm256_xor_si256(c2[13350],_mm256_xor_si256(c2[1205],_mm256_xor_si256(c2[4374],_mm256_xor_si256(c2[6514],_mm256_xor_si256(c2[6512],_mm256_xor_si256(c2[13900],_mm256_xor_si256(c2[6538],_mm256_xor_si256(c2[725],_mm256_xor_si256(c2[13393],_mm256_xor_si256(c2[15537],_mm256_xor_si256(c2[16065],_mm256_xor_si256(c2[10253],_mm256_xor_si256(c2[218],_mm256_xor_si256(c2[249],_mm256_xor_si256(c2[777],_mm256_xor_si256(c2[1300],_mm256_xor_si256(c2[2884],_mm256_xor_si256(c2[7131],_mm256_xor_si256(c2[7659],_mm256_xor_si256(c2[4497],_mm256_xor_si256(c2[9777],_mm256_xor_si256(c2[9264],_mm256_xor_si256(c2[9792],_mm256_xor_si256(c2[12442],_mm256_xor_si256(c2[4519],_mm256_xor_si256(c2[2963],_mm256_xor_si256(c2[3491],_mm256_xor_si256(c2[5070],_mm256_xor_si256(c2[11938],_mm256_xor_si256(c2[14070],_mm256_xor_si256(c2[13538],_mm256_xor_si256(c2[11430],_mm256_xor_si256(c2[12510],_mm256_xor_si256(c2[13038],_mm256_xor_si256(c2[2475],_mm256_xor_si256(c2[11977],_mm256_xor_si256(c2[5667],_mm256_xor_si256(c2[6195],_mm256_xor_si256(c2[1979],_mm256_xor_si256(c2[9369],_mm256_xor_si256(c2[10443],_mm256_xor_si256(c2[2524],_mm256_xor_si256(c2[7281],_mm256_xor_si256(c2[9943],_mm256_xor_si256(c2[10471],_mm256_xor_si256(c2[9415],_mm256_xor_si256(c2[8888],_mm256_xor_si256(c2[11021],_mm256_xor_si256(c2[11549],_mm256_xor_si256(c2[6802],_mm256_xor_si256(c2[7854],_mm256_xor_si256(c2[5770],_mm256_xor_si256(c2[6298],_mm256_xor_si256(c2[7872],_mm256_xor_si256(c2[4705],_mm256_xor_si256(c2[14242],_mm256_xor_si256(c2[14770],_mm256_xor_si256(c2[9483],c2[3683])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 2
d2[24]=_mm256_xor_si256(c2[10569],_mm256_xor_si256(c2[6866],_mm256_xor_si256(c2[6870],_mm256_xor_si256(c2[7398],_mm256_xor_si256(c2[10568],_mm256_xor_si256(c2[11096],_mm256_xor_si256(c2[10584],_mm256_xor_si256(c2[13759],_mm256_xor_si256(c2[14287],_mm256_xor_si256(c2[12170],_mm256_xor_si256(c2[12698],_mm256_xor_si256(c2[10081],_mm256_xor_si256(c2[6914],_mm256_xor_si256(c2[4282],_mm256_xor_si256(c2[4810],_mm256_xor_si256(c2[9587],_mm256_xor_si256(c2[5354],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[600],_mm256_xor_si256(c2[633],_mm256_xor_si256(c2[6442],_mm256_xor_si256(c2[6970],_mm256_xor_si256(c2[10136],_mm256_xor_si256(c2[10664],_mm256_xor_si256(c2[11741],_mm256_xor_si256(c2[9100],_mm256_xor_si256(c2[128],_mm256_xor_si256(c2[656],_mm256_xor_si256(c2[13350],_mm256_xor_si256(c2[677],_mm256_xor_si256(c2[1205],_mm256_xor_si256(c2[3846],_mm256_xor_si256(c2[4374],_mm256_xor_si256(c2[6514],_mm256_xor_si256(c2[5984],_mm256_xor_si256(c2[6512],_mm256_xor_si256(c2[13372],_mm256_xor_si256(c2[13900],_mm256_xor_si256(c2[6538],_mm256_xor_si256(c2[197],_mm256_xor_si256(c2[725],_mm256_xor_si256(c2[12865],_mm256_xor_si256(c2[13393],_mm256_xor_si256(c2[16065],_mm256_xor_si256(c2[10253],_mm256_xor_si256(c2[16585],_mm256_xor_si256(c2[218],_mm256_xor_si256(c2[777],_mm256_xor_si256(c2[772],_mm256_xor_si256(c2[1300],_mm256_xor_si256(c2[2356],_mm256_xor_si256(c2[2884],_mm256_xor_si256(c2[7659],_mm256_xor_si256(c2[4497],_mm256_xor_si256(c2[9249],_mm256_xor_si256(c2[9777],_mm256_xor_si256(c2[9792],_mm256_xor_si256(c2[12442],_mm256_xor_si256(c2[3991],_mm256_xor_si256(c2[4519],_mm256_xor_si256(c2[3491],_mm256_xor_si256(c2[4542],_mm256_xor_si256(c2[5070],_mm256_xor_si256(c2[11410],_mm256_xor_si256(c2[11938],_mm256_xor_si256(c2[14070],_mm256_xor_si256(c2[13010],_mm256_xor_si256(c2[13538],_mm256_xor_si256(c2[10902],_mm256_xor_si256(c2[11430],_mm256_xor_si256(c2[13038],_mm256_xor_si256(c2[2475],_mm256_xor_si256(c2[11449],_mm256_xor_si256(c2[11977],_mm256_xor_si256(c2[6195],_mm256_xor_si256(c2[1979],_mm256_xor_si256(c2[8841],_mm256_xor_si256(c2[9369],_mm256_xor_si256(c2[10443],_mm256_xor_si256(c2[1996],_mm256_xor_si256(c2[2524],_mm256_xor_si256(c2[6753],_mm256_xor_si256(c2[7281],_mm256_xor_si256(c2[10471],_mm256_xor_si256(c2[8887],_mm256_xor_si256(c2[9415],_mm256_xor_si256(c2[8360],_mm256_xor_si256(c2[8888],_mm256_xor_si256(c2[11549],_mm256_xor_si256(c2[6802],_mm256_xor_si256(c2[7326],_mm256_xor_si256(c2[7854],_mm256_xor_si256(c2[6298],_mm256_xor_si256(c2[7344],_mm256_xor_si256(c2[7872],_mm256_xor_si256(c2[4177],_mm256_xor_si256(c2[4705],_mm256_xor_si256(c2[14770],_mm256_xor_si256(c2[9483],_mm256_xor_si256(c2[3155],c2[3683]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 3
d2[36]=_mm256_xor_si256(c2[10569],_mm256_xor_si256(c2[6866],_mm256_xor_si256(c2[7398],_mm256_xor_si256(c2[10568],_mm256_xor_si256(c2[11096],_mm256_xor_si256(c2[10584],_mm256_xor_si256(c2[14287],_mm256_xor_si256(c2[12170],_mm256_xor_si256(c2[12698],_mm256_xor_si256(c2[10081],_mm256_xor_si256(c2[6914],_mm256_xor_si256(c2[4810],_mm256_xor_si256(c2[9587],_mm256_xor_si256(c2[5354],_mm256_xor_si256(c2[72],_mm256_xor_si256(c2[600],_mm256_xor_si256(c2[633],_mm256_xor_si256(c2[6970],_mm256_xor_si256(c2[10136],_mm256_xor_si256(c2[10664],_mm256_xor_si256(c2[11741],_mm256_xor_si256(c2[9100],_mm256_xor_si256(c2[656],_mm256_xor_si256(c2[13350],_mm256_xor_si256(c2[1205],_mm256_xor_si256(c2[3846],_mm256_xor_si256(c2[4374],_mm256_xor_si256(c2[6514],_mm256_xor_si256(c2[6512],_mm256_xor_si256(c2[13372],_mm256_xor_si256(c2[13900],_mm256_xor_si256(c2[6538],_mm256_xor_si256(c2[725],_mm256_xor_si256(c2[12865],_mm256_xor_si256(c2[13393],_mm256_xor_si256(c2[16065],_mm256_xor_si256(c2[10253],_mm256_xor_si256(c2[218],_mm256_xor_si256(c2[777],_mm256_xor_si256(c2[1300],_mm256_xor_si256(c2[2356],_mm256_xor_si256(c2[2884],_mm256_xor_si256(c2[7659],_mm256_xor_si256(c2[4497],_mm256_xor_si256(c2[9249],_mm256_xor_si256(c2[9777],_mm256_xor_si256(c2[9792],_mm256_xor_si256(c2[12442],_mm256_xor_si256(c2[3991],_mm256_xor_si256(c2[4519],_mm256_xor_si256(c2[3491],_mm256_xor_si256(c2[5070],_mm256_xor_si256(c2[11410],_mm256_xor_si256(c2[11938],_mm256_xor_si256(c2[14070],_mm256_xor_si256(c2[13538],_mm256_xor_si256(c2[10902],_mm256_xor_si256(c2[11430],_mm256_xor_si256(c2[13038],_mm256_xor_si256(c2[2475],_mm256_xor_si256(c2[11977],_mm256_xor_si256(c2[6195],_mm256_xor_si256(c2[1979],_mm256_xor_si256(c2[8841],_mm256_xor_si256(c2[9369],_mm256_xor_si256(c2[10443],_mm256_xor_si256(c2[2524],_mm256_xor_si256(c2[6753],_mm256_xor_si256(c2[7281],_mm256_xor_si256(c2[10471],_mm256_xor_si256(c2[9415],_mm256_xor_si256(c2[8360],_mm256_xor_si256(c2[8888],_mm256_xor_si256(c2[11549],_mm256_xor_si256(c2[6802],_mm256_xor_si256(c2[7854],_mm256_xor_si256(c2[6298],_mm256_xor_si256(c2[7872],_mm256_xor_si256(c2[4177],_mm256_xor_si256(c2[4705],_mm256_xor_si256(c2[14770],_mm256_xor_si256(c2[9483],_mm256_xor_si256(c2[3155],c2[3683])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 4
d2[48]=_mm256_xor_si256(c2[6346],c2[11117]);
//row: 5
d2[60]=_mm256_xor_si256(c2[8450],_mm256_xor_si256(c2[4759],_mm256_xor_si256(c2[5291],_mm256_xor_si256(c2[8977],_mm256_xor_si256(c2[1590],_mm256_xor_si256(c2[8477],_mm256_xor_si256(c2[12168],_mm256_xor_si256(c2[10591],_mm256_xor_si256(c2[7416],_mm256_xor_si256(c2[7974],_mm256_xor_si256(c2[4807],_mm256_xor_si256(c2[2691],_mm256_xor_si256(c2[7468],_mm256_xor_si256(c2[3247],_mm256_xor_si256(c2[15388],_mm256_xor_si256(c2[10107],_mm256_xor_si256(c2[15409],_mm256_xor_si256(c2[4851],_mm256_xor_si256(c2[8545],_mm256_xor_si256(c2[9634],_mm256_xor_si256(c2[6993],_mm256_xor_si256(c2[15432],_mm256_xor_si256(c2[11243],_mm256_xor_si256(c2[15993],_mm256_xor_si256(c2[2267],_mm256_xor_si256(c2[4395],_mm256_xor_si256(c2[4393],_mm256_xor_si256(c2[11793],_mm256_xor_si256(c2[4419],_mm256_xor_si256(c2[15513],_mm256_xor_si256(c2[11286],_mm256_xor_si256(c2[13946],_mm256_xor_si256(c2[8146],_mm256_xor_si256(c2[15006],_mm256_xor_si256(c2[15553],_mm256_xor_si256(c2[16088],_mm256_xor_si256(c2[777],_mm256_xor_si256(c2[5552],_mm256_xor_si256(c2[2378],_mm256_xor_si256(c2[7658],_mm256_xor_si256(c2[7685],_mm256_xor_si256(c2[10323],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[3461],_mm256_xor_si256(c2[1372],_mm256_xor_si256(c2[2963],_mm256_xor_si256(c2[9819],_mm256_xor_si256(c2[11963],_mm256_xor_si256(c2[11431],_mm256_xor_si256(c2[9323],_mm256_xor_si256(c2[10931],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[9870],_mm256_xor_si256(c2[4088],_mm256_xor_si256(c2[16755],_mm256_xor_si256(c2[7250],_mm256_xor_si256(c2[9367],_mm256_xor_si256(c2[8336],_mm256_xor_si256(c2[417],_mm256_xor_si256(c2[5162],_mm256_xor_si256(c2[8352],_mm256_xor_si256(c2[7296],_mm256_xor_si256(c2[6769],_mm256_xor_si256(c2[9442],_mm256_xor_si256(c2[4683],_mm256_xor_si256(c2[5747],_mm256_xor_si256(c2[4179],_mm256_xor_si256(c2[5765],_mm256_xor_si256(c2[2598],_mm256_xor_si256(c2[12651],_mm256_xor_si256(c2[7376],_mm256_xor_si256(c2[1564],c2[10537]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 6
d2[72]=_mm256_xor_si256(c2[11624],_mm256_xor_si256(c2[680],_mm256_xor_si256(c2[768],_mm256_xor_si256(c2[16642],_mm256_xor_si256(c2[15098],_mm256_xor_si256(c2[15727],_mm256_xor_si256(c2[9936],c2[1015])))))));
//row: 7
d2[84]=_mm256_xor_si256(c2[4752],_mm256_xor_si256(c2[15865],_mm256_xor_si256(c2[14889],_mm256_xor_si256(c2[7042],_mm256_xor_si256(c2[1257],c2[9843])))));
//row: 8
d2[96]=_mm256_xor_si256(c2[11627],_mm256_xor_si256(c2[15842],_mm256_xor_si256(c2[7924],_mm256_xor_si256(c2[12151],_mm256_xor_si256(c2[8456],_mm256_xor_si256(c2[12155],_mm256_xor_si256(c2[12683],_mm256_xor_si256(c2[12154],_mm256_xor_si256(c2[15841],_mm256_xor_si256(c2[16369],_mm256_xor_si256(c2[10041],_mm256_xor_si256(c2[11642],_mm256_xor_si256(c2[15869],_mm256_xor_si256(c2[15345],_mm256_xor_si256(c2[2137],_mm256_xor_si256(c2[2665],_mm256_xor_si256(c2[13756],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[1088],_mm256_xor_si256(c2[10061],_mm256_xor_si256(c2[11139],_mm256_xor_si256(c2[15366],_mm256_xor_si256(c2[7972],_mm256_xor_si256(c2[12199],_mm256_xor_si256(c2[5856],_mm256_xor_si256(c2[9555],_mm256_xor_si256(c2[10083],_mm256_xor_si256(c2[10633],_mm256_xor_si256(c2[14860],_mm256_xor_si256(c2[6412],_mm256_xor_si256(c2[10639],_mm256_xor_si256(c2[1658],_mm256_xor_si256(c2[5357],_mm256_xor_si256(c2[5885],_mm256_xor_si256(c2[2717],_mm256_xor_si256(c2[1691],_mm256_xor_si256(c2[5906],_mm256_xor_si256(c2[8016],_mm256_xor_si256(c2[11715],_mm256_xor_si256(c2[12243],_mm256_xor_si256(c2[11722],_mm256_xor_si256(c2[15409],_mm256_xor_si256(c2[15937],_mm256_xor_si256(c2[12799],_mm256_xor_si256(c2[131],_mm256_xor_si256(c2[10158],_mm256_xor_si256(c2[14385],_mm256_xor_si256(c2[1714],_mm256_xor_si256(c2[5401],_mm256_xor_si256(c2[5929],_mm256_xor_si256(c2[14408],_mm256_xor_si256(c2[1728],_mm256_xor_si256(c2[2263],_mm256_xor_si256(c2[5962],_mm256_xor_si256(c2[6490],_mm256_xor_si256(c2[5432],_mm256_xor_si256(c2[9131],_mm256_xor_si256(c2[9659],_mm256_xor_si256(c2[7560],_mm256_xor_si256(c2[11787],_mm256_xor_si256(c2[7570],_mm256_xor_si256(c2[11257],_mm256_xor_si256(c2[11785],_mm256_xor_si256(c2[14958],_mm256_xor_si256(c2[1762],_mm256_xor_si256(c2[2290],_mm256_xor_si256(c2[7584],_mm256_xor_si256(c2[11811],_mm256_xor_si256(c2[1783],_mm256_xor_si256(c2[5482],_mm256_xor_si256(c2[6010],_mm256_xor_si256(c2[14451],_mm256_xor_si256(c2[1255],_mm256_xor_si256(c2[1783],_mm256_xor_si256(c2[216],_mm256_xor_si256(c2[4443],_mm256_xor_si256(c2[11311],_mm256_xor_si256(c2[15538],_mm256_xor_si256(c2[1276],_mm256_xor_si256(c2[4975],_mm256_xor_si256(c2[5503],_mm256_xor_si256(c2[1835],_mm256_xor_si256(c2[6050],_mm256_xor_si256(c2[2358],_mm256_xor_si256(c2[6057],_mm256_xor_si256(c2[6585],_mm256_xor_si256(c2[3942],_mm256_xor_si256(c2[7641],_mm256_xor_si256(c2[8169],_mm256_xor_si256(c2[8717],_mm256_xor_si256(c2[12944],_mm256_xor_si256(c2[5555],_mm256_xor_si256(c2[9770],_mm256_xor_si256(c2[10835],_mm256_xor_si256(c2[14522],_mm256_xor_si256(c2[15050],_mm256_xor_si256(c2[10850],_mm256_xor_si256(c2[15077],_mm256_xor_si256(c2[13488],_mm256_xor_si256(c2[820],_mm256_xor_si256(c2[5577],_mm256_xor_si256(c2[9264],_mm256_xor_si256(c2[9792],_mm256_xor_si256(c2[9792],_mm256_xor_si256(c2[4537],_mm256_xor_si256(c2[8764],_mm256_xor_si256(c2[6128],_mm256_xor_si256(c2[9827],_mm256_xor_si256(c2[10355],_mm256_xor_si256(c2[12984],_mm256_xor_si256(c2[16683],_mm256_xor_si256(c2[316],_mm256_xor_si256(c2[15128],_mm256_xor_si256(c2[2448],_mm256_xor_si256(c2[14596],_mm256_xor_si256(c2[1400],_mm256_xor_si256(c2[1928],_mm256_xor_si256(c2[12488],_mm256_xor_si256(c2[16187],_mm256_xor_si256(c2[16715],_mm256_xor_si256(c2[14096],_mm256_xor_si256(c2[1416],_mm256_xor_si256(c2[3533],_mm256_xor_si256(c2[7760],_mm256_xor_si256(c2[13035],_mm256_xor_si256(c2[16734],_mm256_xor_si256(c2[367],_mm256_xor_si256(c2[7253],_mm256_xor_si256(c2[11480],_mm256_xor_si256(c2[3025],_mm256_xor_si256(c2[7252],_mm256_xor_si256(c2[10427],_mm256_xor_si256(c2[14114],_mm256_xor_si256(c2[14642],_mm256_xor_si256(c2[4081],_mm256_xor_si256(c2[11501],_mm256_xor_si256(c2[15728],_mm256_xor_si256(c2[3582],_mm256_xor_si256(c2[7281],_mm256_xor_si256(c2[7809],_mm256_xor_si256(c2[8339],_mm256_xor_si256(c2[12026],_mm256_xor_si256(c2[12554],_mm256_xor_si256(c2[11529],_mm256_xor_si256(c2[15744],_mm256_xor_si256(c2[10473],_mm256_xor_si256(c2[14160],_mm256_xor_si256(c2[14688],_mm256_xor_si256(c2[9946],_mm256_xor_si256(c2[13633],_mm256_xor_si256(c2[14161],_mm256_xor_si256(c2[12607],_mm256_xor_si256(c2[16834],_mm256_xor_si256(c2[7848],_mm256_xor_si256(c2[12075],_mm256_xor_si256(c2[8912],_mm256_xor_si256(c2[12611],_mm256_xor_si256(c2[13139],_mm256_xor_si256(c2[463],_mm256_xor_si256(c2[7344],_mm256_xor_si256(c2[11571],_mm256_xor_si256(c2[8930],_mm256_xor_si256(c2[12629],_mm256_xor_si256(c2[13157],_mm256_xor_si256(c2[5763],_mm256_xor_si256(c2[9462],_mm256_xor_si256(c2[9990],_mm256_xor_si256(c2[15816],_mm256_xor_si256(c2[3148],_mm256_xor_si256(c2[10541],_mm256_xor_si256(c2[14768],_mm256_xor_si256(c2[4729],_mm256_xor_si256(c2[8428],_mm256_xor_si256(c2[8956],c2[8963]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 9
d2[108]=_mm256_xor_si256(c2[7403],_mm256_xor_si256(c2[4255],_mm256_xor_si256(c2[778],_mm256_xor_si256(c2[2908],_mm256_xor_si256(c2[13513],_mm256_xor_si256(c2[8337],_mm256_xor_si256(c2[16801],c2[9986])))))));
//row: 10
d2[120]=_mm256_xor_si256(c2[2667],_mm256_xor_si256(c2[10090],_mm256_xor_si256(c2[9608],_mm256_xor_si256(c2[8091],_mm256_xor_si256(c2[16571],c2[1403])))));
//row: 11
d2[132]=_mm256_xor_si256(c2[536],_mm256_xor_si256(c2[3169],_mm256_xor_si256(c2[3697],_mm256_xor_si256(c2[13728],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[14260],_mm256_xor_si256(c2[538],_mm256_xor_si256(c2[1063],_mm256_xor_si256(c2[4224],_mm256_xor_si256(c2[8449],_mm256_xor_si256(c2[563],_mm256_xor_si256(c2[3196],_mm256_xor_si256(c2[3724],_mm256_xor_si256(c2[4254],_mm256_xor_si256(c2[7427],_mm256_xor_si256(c2[2665],_mm256_xor_si256(c2[5838],_mm256_xor_si256(c2[3195],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[2693],_mm256_xor_si256(c2[3221],_mm256_xor_si256(c2[13776],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[11672],_mm256_xor_si256(c2[14833],_mm256_xor_si256(c2[16449],_mm256_xor_si256(c2[2187],_mm256_xor_si256(c2[2715],_mm256_xor_si256(c2[12216],_mm256_xor_si256(c2[15389],_mm256_xor_si256(c2[7474],_mm256_xor_si256(c2[10635],_mm256_xor_si256(c2[7495],_mm256_xor_si256(c2[10656],_mm256_xor_si256(c2[13832],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[631],_mm256_xor_si256(c2[3792],_mm256_xor_si256(c2[1708],_mm256_xor_si256(c2[4353],_mm256_xor_si256(c2[4881],_mm256_xor_si256(c2[15962],_mm256_xor_si256(c2[2240],_mm256_xor_si256(c2[7518],_mm256_xor_si256(c2[10691],_mm256_xor_si256(c2[3317],_mm256_xor_si256(c2[5962],_mm256_xor_si256(c2[6490],_mm256_xor_si256(c2[8067],_mm256_xor_si256(c2[11240],_mm256_xor_si256(c2[11236],_mm256_xor_si256(c2[14409],_mm256_xor_si256(c2[13376],_mm256_xor_si256(c2[16537],_mm256_xor_si256(c2[13374],_mm256_xor_si256(c2[16547],_mm256_xor_si256(c2[3867],_mm256_xor_si256(c2[7040],_mm256_xor_si256(c2[13400],_mm256_xor_si256(c2[16561],_mm256_xor_si256(c2[7587],_mm256_xor_si256(c2[10760],_mm256_xor_si256(c2[3360],_mm256_xor_si256(c2[6533],_mm256_xor_si256(c2[6032],_mm256_xor_si256(c2[8665],_mm256_xor_si256(c2[9193],_mm256_xor_si256(c2[220],_mm256_xor_si256(c2[3393],_mm256_xor_si256(c2[7080],_mm256_xor_si256(c2[10253],_mm256_xor_si256(c2[7639],_mm256_xor_si256(c2[10272],_mm256_xor_si256(c2[10800],_mm256_xor_si256(c2[8162],_mm256_xor_si256(c2[11335],_mm256_xor_si256(c2[9746],_mm256_xor_si256(c2[12919],_mm256_xor_si256(c2[14521],_mm256_xor_si256(c2[271],_mm256_xor_si256(c2[799],_mm256_xor_si256(c2[11359],_mm256_xor_si256(c2[14520],_mm256_xor_si256(c2[16639],_mm256_xor_si256(c2[2905],_mm256_xor_si256(c2[16666],_mm256_xor_si256(c2[2404],_mm256_xor_si256(c2[2932],_mm256_xor_si256(c2[2409],_mm256_xor_si256(c2[5570],_mm256_xor_si256(c2[11381],_mm256_xor_si256(c2[14554],_mm256_xor_si256(c2[4512],_mm256_xor_si256(c2[10353],_mm256_xor_si256(c2[12986],_mm256_xor_si256(c2[13514],_mm256_xor_si256(c2[11932],_mm256_xor_si256(c2[15105],_mm256_xor_si256(c2[1905],_mm256_xor_si256(c2[5066],_mm256_xor_si256(c2[4037],_mm256_xor_si256(c2[7210],_mm256_xor_si256(c2[3505],_mm256_xor_si256(c2[6678],_mm256_xor_si256(c2[1397],_mm256_xor_si256(c2[4570],_mm256_xor_si256(c2[3005],_mm256_xor_si256(c2[5650],_mm256_xor_si256(c2[6178],_mm256_xor_si256(c2[9337],_mm256_xor_si256(c2[12510],_mm256_xor_si256(c2[1944],_mm256_xor_si256(c2[5117],_mm256_xor_si256(c2[13057],_mm256_xor_si256(c2[15702],_mm256_xor_si256(c2[16230],_mm256_xor_si256(c2[8841],_mm256_xor_si256(c2[12002],_mm256_xor_si256(c2[16231],_mm256_xor_si256(c2[2497],_mm256_xor_si256(c2[8305],_mm256_xor_si256(c2[410],_mm256_xor_si256(c2[3583],_mm256_xor_si256(c2[9386],_mm256_xor_si256(c2[12559],_mm256_xor_si256(c2[14143],_mm256_xor_si256(c2[409],_mm256_xor_si256(c2[438],_mm256_xor_si256(c2[3083],_mm256_xor_si256(c2[3611],_mm256_xor_si256(c2[16277],_mm256_xor_si256(c2[2555],_mm256_xor_si256(c2[15750],_mm256_xor_si256(c2[2016],_mm256_xor_si256(c2[1516],_mm256_xor_si256(c2[4161],_mm256_xor_si256(c2[4689],_mm256_xor_si256(c2[13664],_mm256_xor_si256(c2[16825],_mm256_xor_si256(c2[14716],_mm256_xor_si256(c2[994],_mm256_xor_si256(c2[13160],_mm256_xor_si256(c2[15793],_mm256_xor_si256(c2[16321],_mm256_xor_si256(c2[14746],_mm256_xor_si256(c2[1012],_mm256_xor_si256(c2[11579],_mm256_xor_si256(c2[14740],_mm256_xor_si256(c2[4737],_mm256_xor_si256(c2[7370],_mm256_xor_si256(c2[7898],_mm256_xor_si256(c2[16345],_mm256_xor_si256(c2[2623],_mm256_xor_si256(c2[10545],_mm256_xor_si256(c2[13706],c2[15293])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 12
d2[144]=_mm256_xor_si256(c2[6866],_mm256_xor_si256(c2[13757],_mm256_xor_si256(c2[7637],_mm256_xor_si256(c2[4495],_mm256_xor_si256(c2[9817],c2[5714])))));
//row: 13
d2[156]=_mm256_xor_si256(c2[2649],_mm256_xor_si256(c2[3177],_mm256_xor_si256(c2[16369],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[3704],_mm256_xor_si256(c2[13209],_mm256_xor_si256(c2[2664],_mm256_xor_si256(c2[3192],_mm256_xor_si256(c2[6895],_mm256_xor_si256(c2[5306],_mm256_xor_si256(c2[2161],_mm256_xor_si256(c2[2689],_mm256_xor_si256(c2[16417],_mm256_xor_si256(c2[14313],_mm256_xor_si256(c2[1667],_mm256_xor_si256(c2[2195],_mm256_xor_si256(c2[14857],_mm256_xor_si256(c2[10115],_mm256_xor_si256(c2[9053],_mm256_xor_si256(c2[10136],_mm256_xor_si256(c2[16473],_mm256_xor_si256(c2[3272],_mm256_xor_si256(c2[3821],_mm256_xor_si256(c2[4349],_mm256_xor_si256(c2[1708],_mm256_xor_si256(c2[10159],_mm256_xor_si256(c2[5430],_mm256_xor_si256(c2[5958],_mm256_xor_si256(c2[10708],_mm256_xor_si256(c2[13877],_mm256_xor_si256(c2[16017],_mm256_xor_si256(c2[16015],_mm256_xor_si256(c2[6508],_mm256_xor_si256(c2[5456],_mm256_xor_si256(c2[16041],_mm256_xor_si256(c2[10228],_mm256_xor_si256(c2[6001],_mm256_xor_si256(c2[8145],_mm256_xor_si256(c2[8673],_mm256_xor_si256(c2[2861],_mm256_xor_si256(c2[9721],_mm256_xor_si256(c2[9752],_mm256_xor_si256(c2[10280],_mm256_xor_si256(c2[10803],_mm256_xor_si256(c2[12387],_mm256_xor_si256(c2[16634],_mm256_xor_si256(c2[267],_mm256_xor_si256(c2[14000],_mm256_xor_si256(c2[2385],_mm256_xor_si256(c2[1872],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[5050],_mm256_xor_si256(c2[14022],_mm256_xor_si256(c2[12466],_mm256_xor_si256(c2[12994],_mm256_xor_si256(c2[14573],_mm256_xor_si256(c2[4546],_mm256_xor_si256(c2[6678],_mm256_xor_si256(c2[6146],_mm256_xor_si256(c2[4038],_mm256_xor_si256(c2[5118],_mm256_xor_si256(c2[5646],_mm256_xor_si256(c2[11978],_mm256_xor_si256(c2[4585],_mm256_xor_si256(c2[15170],_mm256_xor_si256(c2[15698],_mm256_xor_si256(c2[11482],_mm256_xor_si256(c2[1977],_mm256_xor_si256(c2[3051],_mm256_xor_si256(c2[12027],_mm256_xor_si256(c2[16784],_mm256_xor_si256(c2[2551],_mm256_xor_si256(c2[3079],_mm256_xor_si256(c2[2023],_mm256_xor_si256(c2[1496],_mm256_xor_si256(c2[3629],_mm256_xor_si256(c2[4157],_mm256_xor_si256(c2[16305],_mm256_xor_si256(c2[462],_mm256_xor_si256(c2[15273],_mm256_xor_si256(c2[15801],_mm256_xor_si256(c2[480],_mm256_xor_si256(c2[14208],_mm256_xor_si256(c2[10515],_mm256_xor_si256(c2[6850],_mm256_xor_si256(c2[7378],_mm256_xor_si256(c2[2091],c2[13186])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 14
d2[168]=_mm256_xor_si256(c2[7396],_mm256_xor_si256(c2[12967],_mm256_xor_si256(c2[5116],_mm256_xor_si256(c2[13586],_mm256_xor_si256(c2[14674],c2[6840])))));
//row: 15
d2[180]=_mm256_xor_si256(c2[534],_mm256_xor_si256(c2[13738],_mm256_xor_si256(c2[14258],_mm256_xor_si256(c2[533],_mm256_xor_si256(c2[1061],_mm256_xor_si256(c2[8983],_mm256_xor_si256(c2[561],_mm256_xor_si256(c2[4252],_mm256_xor_si256(c2[2147],_mm256_xor_si256(c2[2675],_mm256_xor_si256(c2[1080],_mm256_xor_si256(c2[58],_mm256_xor_si256(c2[13786],_mm256_xor_si256(c2[11670],_mm256_xor_si256(c2[16447],_mm256_xor_si256(c2[12226],_mm256_xor_si256(c2[6944],_mm256_xor_si256(c2[7472],_mm256_xor_si256(c2[7493],_mm256_xor_si256(c2[13830],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[629],_mm256_xor_si256(c2[1706],_mm256_xor_si256(c2[15960],_mm256_xor_si256(c2[7516],_mm256_xor_si256(c2[3315],_mm256_xor_si256(c2[8065],_mm256_xor_si256(c2[10706],_mm256_xor_si256(c2[11234],_mm256_xor_si256(c2[13374],_mm256_xor_si256(c2[13372],_mm256_xor_si256(c2[3337],_mm256_xor_si256(c2[3865],_mm256_xor_si256(c2[13398],_mm256_xor_si256(c2[7585],_mm256_xor_si256(c2[2842],_mm256_xor_si256(c2[3370],_mm256_xor_si256(c2[6030],_mm256_xor_si256(c2[218],_mm256_xor_si256(c2[7090],_mm256_xor_si256(c2[7637],_mm256_xor_si256(c2[8160],_mm256_xor_si256(c2[9216],_mm256_xor_si256(c2[9744],_mm256_xor_si256(c2[9750],_mm256_xor_si256(c2[14531],_mm256_xor_si256(c2[11357],_mm256_xor_si256(c2[16109],_mm256_xor_si256(c2[16637],_mm256_xor_si256(c2[16664],_mm256_xor_si256(c2[2407],_mm256_xor_si256(c2[10851],_mm256_xor_si256(c2[11379],_mm256_xor_si256(c2[10351],_mm256_xor_si256(c2[11930],_mm256_xor_si256(c2[1375],_mm256_xor_si256(c2[1903],_mm256_xor_si256(c2[16161],_mm256_xor_si256(c2[4035],_mm256_xor_si256(c2[3515],_mm256_xor_si256(c2[867],_mm256_xor_si256(c2[1395],_mm256_xor_si256(c2[3003],_mm256_xor_si256(c2[9347],_mm256_xor_si256(c2[1954],_mm256_xor_si256(c2[13067],_mm256_xor_si256(c2[8839],_mm256_xor_si256(c2[15701],_mm256_xor_si256(c2[16229],_mm256_xor_si256(c2[408],_mm256_xor_si256(c2[9384],_mm256_xor_si256(c2[13613],_mm256_xor_si256(c2[14141],_mm256_xor_si256(c2[436],_mm256_xor_si256(c2[16275],_mm256_xor_si256(c2[15220],_mm256_xor_si256(c2[15748],_mm256_xor_si256(c2[12577],_mm256_xor_si256(c2[1514],_mm256_xor_si256(c2[13662],_mm256_xor_si256(c2[14714],_mm256_xor_si256(c2[13158],_mm256_xor_si256(c2[14744],_mm256_xor_si256(c2[11049],_mm256_xor_si256(c2[11577],_mm256_xor_si256(c2[4735],_mm256_xor_si256(c2[16355],_mm256_xor_si256(c2[10015],c2[10543]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 16
d2[192]=_mm256_xor_si256(c2[6347],_mm256_xor_si256(c2[2644],_mm256_xor_si256(c2[3176],_mm256_xor_si256(c2[6874],_mm256_xor_si256(c2[6362],_mm256_xor_si256(c2[10065],_mm256_xor_si256(c2[8476],_mm256_xor_si256(c2[6888],_mm256_xor_si256(c2[5859],_mm256_xor_si256(c2[2692],_mm256_xor_si256(c2[576],_mm256_xor_si256(c2[5353],_mm256_xor_si256(c2[1132],_mm256_xor_si256(c2[13273],_mm256_xor_si256(c2[9586],_mm256_xor_si256(c2[13306],_mm256_xor_si256(c2[2736],_mm256_xor_si256(c2[6442],_mm256_xor_si256(c2[7519],_mm256_xor_si256(c2[4878],_mm256_xor_si256(c2[13329],_mm256_xor_si256(c2[9128],_mm256_xor_si256(c2[13878],_mm256_xor_si256(c2[152],_mm256_xor_si256(c2[2280],_mm256_xor_si256(c2[2290],_mm256_xor_si256(c2[9678],_mm256_xor_si256(c2[2304],_mm256_xor_si256(c2[13398],_mm256_xor_si256(c2[9171],_mm256_xor_si256(c2[11843],_mm256_xor_si256(c2[6031],_mm256_xor_si256(c2[12891],_mm256_xor_si256(c2[13450],_mm256_xor_si256(c2[13973],_mm256_xor_si256(c2[15557],_mm256_xor_si256(c2[3437],_mm256_xor_si256(c2[275],_mm256_xor_si256(c2[5555],_mm256_xor_si256(c2[13465],_mm256_xor_si256(c2[5570],_mm256_xor_si256(c2[8208],_mm256_xor_si256(c2[297],_mm256_xor_si256(c2[16152],_mm256_xor_si256(c2[848],_mm256_xor_si256(c2[7704],_mm256_xor_si256(c2[9848],_mm256_xor_si256(c2[9316],_mm256_xor_si256(c2[7208],_mm256_xor_si256(c2[8816],_mm256_xor_si256(c2[15148],_mm256_xor_si256(c2[7755],_mm256_xor_si256(c2[1973],_mm256_xor_si256(c2[14640],_mm256_xor_si256(c2[5147],_mm256_xor_si256(c2[6221],_mm256_xor_si256(c2[15197],_mm256_xor_si256(c2[3059],_mm256_xor_si256(c2[6249],_mm256_xor_si256(c2[5193],_mm256_xor_si256(c2[4666],_mm256_xor_si256(c2[7327],_mm256_xor_si256(c2[2568],_mm256_xor_si256(c2[3632],_mm256_xor_si256(c2[2064],_mm256_xor_si256(c2[3650],_mm256_xor_si256(c2[483],_mm256_xor_si256(c2[1017],_mm256_xor_si256(c2[10536],_mm256_xor_si256(c2[5261],c2[16344]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 17
d2[204]=_mm256_xor_si256(c2[2120],_mm256_xor_si256(c2[8265],_mm256_xor_si256(c2[9362],_mm256_xor_si256(c2[3587],c2[12659]))));
//row: 18
d2[216]=_mm256_xor_si256(c2[1084],_mm256_xor_si256(c2[1877],_mm256_xor_si256(c2[12992],_mm256_xor_si256(c2[2548],c2[2568]))));
//row: 19
d2[228]=_mm256_xor_si256(c2[8980],_mm256_xor_si256(c2[11118],_mm256_xor_si256(c2[12850],_mm256_xor_si256(c2[9703],c2[2886]))));
//row: 20
d2[240]=_mm256_xor_si256(c2[7403],_mm256_xor_si256(c2[3700],_mm256_xor_si256(c2[4232],_mm256_xor_si256(c2[7930],_mm256_xor_si256(c2[14261],_mm256_xor_si256(c2[7418],_mm256_xor_si256(c2[11121],_mm256_xor_si256(c2[9532],_mm256_xor_si256(c2[6915],_mm256_xor_si256(c2[3748],_mm256_xor_si256(c2[1632],_mm256_xor_si256(c2[6409],_mm256_xor_si256(c2[2188],_mm256_xor_si256(c2[14329],_mm256_xor_si256(c2[7470],_mm256_xor_si256(c2[14362],_mm256_xor_si256(c2[3792],_mm256_xor_si256(c2[7498],_mm256_xor_si256(c2[8575],_mm256_xor_si256(c2[5934],_mm256_xor_si256(c2[14385],_mm256_xor_si256(c2[10184],_mm256_xor_si256(c2[14934],_mm256_xor_si256(c2[1208],_mm256_xor_si256(c2[3336],_mm256_xor_si256(c2[3346],_mm256_xor_si256(c2[10734],_mm256_xor_si256(c2[3360],_mm256_xor_si256(c2[14454],_mm256_xor_si256(c2[10227],_mm256_xor_si256(c2[12899],_mm256_xor_si256(c2[7087],_mm256_xor_si256(c2[13947],_mm256_xor_si256(c2[4448],_mm256_xor_si256(c2[14506],_mm256_xor_si256(c2[15029],_mm256_xor_si256(c2[16613],_mm256_xor_si256(c2[4493],_mm256_xor_si256(c2[1331],_mm256_xor_si256(c2[6611],_mm256_xor_si256(c2[11362],_mm256_xor_si256(c2[6626],_mm256_xor_si256(c2[9264],_mm256_xor_si256(c2[1353],_mm256_xor_si256(c2[313],_mm256_xor_si256(c2[1904],_mm256_xor_si256(c2[8760],_mm256_xor_si256(c2[10904],_mm256_xor_si256(c2[10372],_mm256_xor_si256(c2[8264],_mm256_xor_si256(c2[9872],_mm256_xor_si256(c2[16204],_mm256_xor_si256(c2[8811],_mm256_xor_si256(c2[3029],_mm256_xor_si256(c2[15696],_mm256_xor_si256(c2[6203],_mm256_xor_si256(c2[7277],_mm256_xor_si256(c2[16253],_mm256_xor_si256(c2[4115],_mm256_xor_si256(c2[7305],_mm256_xor_si256(c2[6249],_mm256_xor_si256(c2[5722],_mm256_xor_si256(c2[8383],_mm256_xor_si256(c2[3624],_mm256_xor_si256(c2[4688],_mm256_xor_si256(c2[3120],_mm256_xor_si256(c2[4706],_mm256_xor_si256(c2[1539],_mm256_xor_si256(c2[11592],_mm256_xor_si256(c2[6317],c2[505]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 21
d2[252]=_mm256_xor_si256(c2[6894],_mm256_xor_si256(c2[3291],_mm256_xor_si256(c2[4618],_mm256_xor_si256(c2[11574],c2[1035]))));
//row: 22
d2[264]=_mm256_xor_si256(c2[15840],_mm256_xor_si256(c2[6096],_mm256_xor_si256(c2[5071],c2[12024])));
//row: 23
d2[276]=_mm256_xor_si256(c2[12696],_mm256_xor_si256(c2[13250],_mm256_xor_si256(c2[15553],c2[14688])));
//row: 24
d2[288]=_mm256_xor_si256(c2[15316],_mm256_xor_si256(c2[11625],_mm256_xor_si256(c2[12145],_mm256_xor_si256(c2[15843],_mm256_xor_si256(c2[5289],_mm256_xor_si256(c2[15343],_mm256_xor_si256(c2[2139],_mm256_xor_si256(c2[562],_mm256_xor_si256(c2[14840],_mm256_xor_si256(c2[11673],_mm256_xor_si256(c2[9557],_mm256_xor_si256(c2[14334],_mm256_xor_si256(c2[10113],_mm256_xor_si256(c2[5359],_mm256_xor_si256(c2[15916],_mm256_xor_si256(c2[5380],_mm256_xor_si256(c2[11717],_mm256_xor_si256(c2[15411],_mm256_xor_si256(c2[5911],_mm256_xor_si256(c2[16488],_mm256_xor_si256(c2[13859],_mm256_xor_si256(c2[5403],_mm256_xor_si256(c2[1202],_mm256_xor_si256(c2[5952],_mm256_xor_si256(c2[9121],_mm256_xor_si256(c2[11261],_mm256_xor_si256(c2[11259],_mm256_xor_si256(c2[1752],_mm256_xor_si256(c2[11285],_mm256_xor_si256(c2[5472],_mm256_xor_si256(c2[1257],_mm256_xor_si256(c2[3917],_mm256_xor_si256(c2[15000],_mm256_xor_si256(c2[4977],_mm256_xor_si256(c2[5524],_mm256_xor_si256(c2[6059],_mm256_xor_si256(c2[7643],_mm256_xor_si256(c2[12418],_mm256_xor_si256(c2[9244],_mm256_xor_si256(c2[14524],_mm256_xor_si256(c2[10306],_mm256_xor_si256(c2[14551],_mm256_xor_si256(c2[294],_mm256_xor_si256(c2[9266],_mm256_xor_si256(c2[8238],_mm256_xor_si256(c2[9817],_mm256_xor_si256(c2[16685],_mm256_xor_si256(c2[1922],_mm256_xor_si256(c2[1402],_mm256_xor_si256(c2[16177],_mm256_xor_si256(c2[890],_mm256_xor_si256(c2[7234],_mm256_xor_si256(c2[16736],_mm256_xor_si256(c2[10954],_mm256_xor_si256(c2[6726],_mm256_xor_si256(c2[14116],_mm256_xor_si256(c2[15202],_mm256_xor_si256(c2[7283],_mm256_xor_si256(c2[12028],_mm256_xor_si256(c2[15218],_mm256_xor_si256(c2[14162],_mm256_xor_si256(c2[13635],_mm256_xor_si256(c2[16296],_mm256_xor_si256(c2[11549],_mm256_xor_si256(c2[12601],_mm256_xor_si256(c2[11045],_mm256_xor_si256(c2[12631],_mm256_xor_si256(c2[9464],_mm256_xor_si256(c2[2622],_mm256_xor_si256(c2[14242],c2[8430]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 25
d2[300]=_mm256_xor_si256(c2[4250],_mm256_xor_si256(c2[9120],_mm256_xor_si256(c2[16547],c2[13017])));
//row: 26
d2[312]=_mm256_xor_si256(c2[3698],_mm256_xor_si256(c2[9026],_mm256_xor_si256(c2[6434],c2[4588])));
//row: 27
d2[324]=_mm256_xor_si256(c2[1086],_mm256_xor_si256(c2[1206],c2[2835]));
//row: 28
d2[336]=_mm256_xor_si256(c2[15846],_mm256_xor_si256(c2[10128],_mm256_xor_si256(c2[11023],c2[10016])));
//row: 29
d2[348]=_mm256_xor_si256(c2[1056],_mm256_xor_si256(c2[14260],_mm256_xor_si256(c2[14792],_mm256_xor_si256(c2[1067],_mm256_xor_si256(c2[1595],_mm256_xor_si256(c2[1083],_mm256_xor_si256(c2[4786],_mm256_xor_si256(c2[2669],_mm256_xor_si256(c2[3197],_mm256_xor_si256(c2[14815],_mm256_xor_si256(c2[580],_mm256_xor_si256(c2[14308],_mm256_xor_si256(c2[12192],_mm256_xor_si256(c2[74],_mm256_xor_si256(c2[12748],_mm256_xor_si256(c2[7466],_mm256_xor_si256(c2[7994],_mm256_xor_si256(c2[8027],_mm256_xor_si256(c2[14352],_mm256_xor_si256(c2[635],_mm256_xor_si256(c2[1163],_mm256_xor_si256(c2[2240],_mm256_xor_si256(c2[16494],_mm256_xor_si256(c2[8050],_mm256_xor_si256(c2[3849],_mm256_xor_si256(c2[8599],_mm256_xor_si256(c2[11240],_mm256_xor_si256(c2[11768],_mm256_xor_si256(c2[13896],_mm256_xor_si256(c2[13906],_mm256_xor_si256(c2[3871],_mm256_xor_si256(c2[4399],_mm256_xor_si256(c2[13920],_mm256_xor_si256(c2[8119],_mm256_xor_si256(c2[3364],_mm256_xor_si256(c2[3892],_mm256_xor_si256(c2[6552],_mm256_xor_si256(c2[752],_mm256_xor_si256(c2[7612],_mm256_xor_si256(c2[8171],_mm256_xor_si256(c2[8694],_mm256_xor_si256(c2[9750],_mm256_xor_si256(c2[10278],_mm256_xor_si256(c2[15053],_mm256_xor_si256(c2[11891],_mm256_xor_si256(c2[16643],_mm256_xor_si256(c2[264],_mm256_xor_si256(c2[291],_mm256_xor_si256(c2[2929],_mm256_xor_si256(c2[11385],_mm256_xor_si256(c2[11913],_mm256_xor_si256(c2[10873],_mm256_xor_si256(c2[12464],_mm256_xor_si256(c2[1897],_mm256_xor_si256(c2[2425],_mm256_xor_si256(c2[4569],_mm256_xor_si256(c2[4037],_mm256_xor_si256(c2[1401],_mm256_xor_si256(c2[1929],_mm256_xor_si256(c2[2976],_mm256_xor_si256(c2[3537],_mm256_xor_si256(c2[9869],_mm256_xor_si256(c2[2476],_mm256_xor_si256(c2[13589],_mm256_xor_si256(c2[9361],_mm256_xor_si256(c2[16235],_mm256_xor_si256(c2[16763],_mm256_xor_si256(c2[942],_mm256_xor_si256(c2[9918],_mm256_xor_si256(c2[14147],_mm256_xor_si256(c2[14675],_mm256_xor_si256(c2[970],_mm256_xor_si256(c2[16809],_mm256_xor_si256(c2[15754],_mm256_xor_si256(c2[16282],_mm256_xor_si256(c2[10468],_mm256_xor_si256(c2[2048],_mm256_xor_si256(c2[14184],_mm256_xor_si256(c2[15248],_mm256_xor_si256(c2[13680],_mm256_xor_si256(c2[15266],_mm256_xor_si256(c2[11571],_mm256_xor_si256(c2[12099],_mm256_xor_si256(c2[5257],_mm256_xor_si256(c2[16877],_mm256_xor_si256(c2[10537],c2[11065]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 30
d2[360]=_mm256_xor_si256(c2[7392],_mm256_xor_si256(c2[3701],_mm256_xor_si256(c2[3705],_mm256_xor_si256(c2[4233],_mm256_xor_si256(c2[7403],_mm256_xor_si256(c2[7931],_mm256_xor_si256(c2[16372],_mm256_xor_si256(c2[7419],_mm256_xor_si256(c2[10594],_mm256_xor_si256(c2[11122],_mm256_xor_si256(c2[9005],_mm256_xor_si256(c2[9533],_mm256_xor_si256(c2[6916],_mm256_xor_si256(c2[3749],_mm256_xor_si256(c2[1105],_mm256_xor_si256(c2[1633],_mm256_xor_si256(c2[6410],_mm256_xor_si256(c2[2189],_mm256_xor_si256(c2[13802],_mm256_xor_si256(c2[14330],_mm256_xor_si256(c2[14363],_mm256_xor_si256(c2[3265],_mm256_xor_si256(c2[3793],_mm256_xor_si256(c2[6971],_mm256_xor_si256(c2[7499],_mm256_xor_si256(c2[8576],_mm256_xor_si256(c2[5935],_mm256_xor_si256(c2[13858],_mm256_xor_si256(c2[14386],_mm256_xor_si256(c2[10185],_mm256_xor_si256(c2[14407],_mm256_xor_si256(c2[14935],_mm256_xor_si256(c2[681],_mm256_xor_si256(c2[1209],_mm256_xor_si256(c2[3337],_mm256_xor_si256(c2[2819],_mm256_xor_si256(c2[3347],_mm256_xor_si256(c2[10207],_mm256_xor_si256(c2[10735],_mm256_xor_si256(c2[3361],_mm256_xor_si256(c2[13927],_mm256_xor_si256(c2[14455],_mm256_xor_si256(c2[9700],_mm256_xor_si256(c2[10228],_mm256_xor_si256(c2[12888],_mm256_xor_si256(c2[7088],_mm256_xor_si256(c2[13420],_mm256_xor_si256(c2[13948],_mm256_xor_si256(c2[14507],_mm256_xor_si256(c2[14502],_mm256_xor_si256(c2[15030],_mm256_xor_si256(c2[16086],_mm256_xor_si256(c2[16614],_mm256_xor_si256(c2[2887],_mm256_xor_si256(c2[4494],_mm256_xor_si256(c2[1320],_mm256_xor_si256(c2[6072],_mm256_xor_si256(c2[6600],_mm256_xor_si256(c2[6627],_mm256_xor_si256(c2[9265],_mm256_xor_si256(c2[826],_mm256_xor_si256(c2[1354],_mm256_xor_si256(c2[314],_mm256_xor_si256(c2[1377],_mm256_xor_si256(c2[1905],_mm256_xor_si256(c2[8233],_mm256_xor_si256(c2[8761],_mm256_xor_si256(c2[2432],_mm256_xor_si256(c2[10905],_mm256_xor_si256(c2[9845],_mm256_xor_si256(c2[10373],_mm256_xor_si256(c2[7737],_mm256_xor_si256(c2[8265],_mm256_xor_si256(c2[9873],_mm256_xor_si256(c2[16205],_mm256_xor_si256(c2[8284],_mm256_xor_si256(c2[8812],_mm256_xor_si256(c2[3030],_mm256_xor_si256(c2[15697],_mm256_xor_si256(c2[5664],_mm256_xor_si256(c2[6192],_mm256_xor_si256(c2[7278],_mm256_xor_si256(c2[15726],_mm256_xor_si256(c2[16254],_mm256_xor_si256(c2[3576],_mm256_xor_si256(c2[4104],_mm256_xor_si256(c2[7306],_mm256_xor_si256(c2[5722],_mm256_xor_si256(c2[6250],_mm256_xor_si256(c2[5195],_mm256_xor_si256(c2[5723],_mm256_xor_si256(c2[8384],_mm256_xor_si256(c2[3625],_mm256_xor_si256(c2[4161],_mm256_xor_si256(c2[4689],_mm256_xor_si256(c2[3121],_mm256_xor_si256(c2[4179],_mm256_xor_si256(c2[4707],_mm256_xor_si256(c2[1012],_mm256_xor_si256(c2[1540],_mm256_xor_si256(c2[11593],_mm256_xor_si256(c2[6318],_mm256_xor_si256(c2[16873],c2[506])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 31
d2[372]=_mm256_xor_si256(c2[11093],_mm256_xor_si256(c2[10565],_mm256_xor_si256(c2[7402],_mm256_xor_si256(c2[6874],_mm256_xor_si256(c2[7922],_mm256_xor_si256(c2[7394],_mm256_xor_si256(c2[11620],_mm256_xor_si256(c2[10564],_mm256_xor_si256(c2[11092],_mm256_xor_si256(c2[11120],_mm256_xor_si256(c2[10592],_mm256_xor_si256(c2[14811],_mm256_xor_si256(c2[14283],_mm256_xor_si256(c2[13234],_mm256_xor_si256(c2[12178],_mm256_xor_si256(c2[12706],_mm256_xor_si256(c2[2139],_mm256_xor_si256(c2[10617],_mm256_xor_si256(c2[10089],_mm256_xor_si256(c2[7450],_mm256_xor_si256(c2[6922],_mm256_xor_si256(c2[5334],_mm256_xor_si256(c2[4806],_mm256_xor_si256(c2[10111],_mm256_xor_si256(c2[9583],_mm256_xor_si256(c2[5890],_mm256_xor_si256(c2[5362],_mm256_xor_si256(c2[1136],_mm256_xor_si256(c2[80],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[1157],_mm256_xor_si256(c2[629],_mm256_xor_si256(c2[7494],_mm256_xor_si256(c2[6966],_mm256_xor_si256(c2[11188],_mm256_xor_si256(c2[10132],_mm256_xor_si256(c2[10660],_mm256_xor_si256(c2[12265],_mm256_xor_si256(c2[11737],_mm256_xor_si256(c2[9624],_mm256_xor_si256(c2[9096],_mm256_xor_si256(c2[1180],_mm256_xor_si256(c2[652],_mm256_xor_si256(c2[13874],_mm256_xor_si256(c2[13346],_mm256_xor_si256(c2[1729],_mm256_xor_si256(c2[1201],_mm256_xor_si256(c2[4898],_mm256_xor_si256(c2[3842],_mm256_xor_si256(c2[4370],_mm256_xor_si256(c2[7038],_mm256_xor_si256(c2[6510],_mm256_xor_si256(c2[7036],_mm256_xor_si256(c2[6508],_mm256_xor_si256(c2[14424],_mm256_xor_si256(c2[13368],_mm256_xor_si256(c2[13896],_mm256_xor_si256(c2[12318],_mm256_xor_si256(c2[7062],_mm256_xor_si256(c2[6534],_mm256_xor_si256(c2[1249],_mm256_xor_si256(c2[721],_mm256_xor_si256(c2[13929],_mm256_xor_si256(c2[12873],_mm256_xor_si256(c2[13401],_mm256_xor_si256(c2[16589],_mm256_xor_si256(c2[16061],_mm256_xor_si256(c2[10777],_mm256_xor_si256(c2[10249],_mm256_xor_si256(c2[754],_mm256_xor_si256(c2[226],_mm256_xor_si256(c2[1301],_mm256_xor_si256(c2[773],_mm256_xor_si256(c2[1824],_mm256_xor_si256(c2[1296],_mm256_xor_si256(c2[3408],_mm256_xor_si256(c2[2352],_mm256_xor_si256(c2[2880],_mm256_xor_si256(c2[8195],_mm256_xor_si256(c2[7667],_mm256_xor_si256(c2[5021],_mm256_xor_si256(c2[4493],_mm256_xor_si256(c2[10301],_mm256_xor_si256(c2[9245],_mm256_xor_si256(c2[9773],_mm256_xor_si256(c2[10328],_mm256_xor_si256(c2[9800],_mm256_xor_si256(c2[12966],_mm256_xor_si256(c2[12438],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[3987],_mm256_xor_si256(c2[4515],_mm256_xor_si256(c2[4015],_mm256_xor_si256(c2[3487],_mm256_xor_si256(c2[5594],_mm256_xor_si256(c2[5066],_mm256_xor_si256(c2[12462],_mm256_xor_si256(c2[11406],_mm256_xor_si256(c2[11934],_mm256_xor_si256(c2[14594],_mm256_xor_si256(c2[14066],_mm256_xor_si256(c2[14074],_mm256_xor_si256(c2[13546],_mm256_xor_si256(c2[11954],_mm256_xor_si256(c2[10898],_mm256_xor_si256(c2[11426],_mm256_xor_si256(c2[13562],_mm256_xor_si256(c2[13034],_mm256_xor_si256(c2[3011],_mm256_xor_si256(c2[2483],_mm256_xor_si256(c2[12513],_mm256_xor_si256(c2[11985],_mm256_xor_si256(c2[6731],_mm256_xor_si256(c2[6203],_mm256_xor_si256(c2[2503],_mm256_xor_si256(c2[1975],_mm256_xor_si256(c2[9893],_mm256_xor_si256(c2[8837],_mm256_xor_si256(c2[9365],_mm256_xor_si256(c2[10979],_mm256_xor_si256(c2[10451],_mm256_xor_si256(c2[3048],_mm256_xor_si256(c2[2520],_mm256_xor_si256(c2[7805],_mm256_xor_si256(c2[6749],_mm256_xor_si256(c2[7277],_mm256_xor_si256(c2[10995],_mm256_xor_si256(c2[10467],_mm256_xor_si256(c2[9939],_mm256_xor_si256(c2[9411],_mm256_xor_si256(c2[9412],_mm256_xor_si256(c2[8356],_mm256_xor_si256(c2[8884],_mm256_xor_si256(c2[12073],_mm256_xor_si256(c2[11545],_mm256_xor_si256(c2[7326],_mm256_xor_si256(c2[6798],_mm256_xor_si256(c2[8378],_mm256_xor_si256(c2[7850],_mm256_xor_si256(c2[6822],_mm256_xor_si256(c2[6294],_mm256_xor_si256(c2[8408],_mm256_xor_si256(c2[7880],_mm256_xor_si256(c2[5241],_mm256_xor_si256(c2[4185],_mm256_xor_si256(c2[4713],_mm256_xor_si256(c2[15294],_mm256_xor_si256(c2[14766],_mm256_xor_si256(c2[10019],_mm256_xor_si256(c2[9491],_mm256_xor_si256(c2[4207],_mm256_xor_si256(c2[3151],c2[3679]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 32
d2[384]=_mm256_xor_si256(c2[10038],_mm256_xor_si256(c2[6347],_mm256_xor_si256(c2[6339],_mm256_xor_si256(c2[6867],_mm256_xor_si256(c2[10037],_mm256_xor_si256(c2[10565],_mm256_xor_si256(c2[3171],_mm256_xor_si256(c2[10065],_mm256_xor_si256(c2[13228],_mm256_xor_si256(c2[13756],_mm256_xor_si256(c2[11651],_mm256_xor_si256(c2[12179],_mm256_xor_si256(c2[9562],_mm256_xor_si256(c2[6395],_mm256_xor_si256(c2[3751],_mm256_xor_si256(c2[4279],_mm256_xor_si256(c2[9056],_mm256_xor_si256(c2[4835],_mm256_xor_si256(c2[16448],_mm256_xor_si256(c2[81],_mm256_xor_si256(c2[102],_mm256_xor_si256(c2[5911],_mm256_xor_si256(c2[6439],_mm256_xor_si256(c2[9605],_mm256_xor_si256(c2[10133],_mm256_xor_si256(c2[11210],_mm256_xor_si256(c2[8569],_mm256_xor_si256(c2[16492],_mm256_xor_si256(c2[125],_mm256_xor_si256(c2[12819],_mm256_xor_si256(c2[146],_mm256_xor_si256(c2[674],_mm256_xor_si256(c2[3315],_mm256_xor_si256(c2[3843],_mm256_xor_si256(c2[5983],_mm256_xor_si256(c2[5453],_mm256_xor_si256(c2[5981],_mm256_xor_si256(c2[12841],_mm256_xor_si256(c2[13369],_mm256_xor_si256(c2[6007],_mm256_xor_si256(c2[16561],_mm256_xor_si256(c2[194],_mm256_xor_si256(c2[12346],_mm256_xor_si256(c2[12874],_mm256_xor_si256(c2[15534],_mm256_xor_si256(c2[9722],_mm256_xor_si256(c2[16066],_mm256_xor_si256(c2[16594],_mm256_xor_si256(c2[246],_mm256_xor_si256(c2[241],_mm256_xor_si256(c2[769],_mm256_xor_si256(c2[1825],_mm256_xor_si256(c2[2353],_mm256_xor_si256(c2[7128],_mm256_xor_si256(c2[3966],_mm256_xor_si256(c2[8718],_mm256_xor_si256(c2[9246],_mm256_xor_si256(c2[9273],_mm256_xor_si256(c2[11911],_mm256_xor_si256(c2[3460],_mm256_xor_si256(c2[3988],_mm256_xor_si256(c2[5046],_mm256_xor_si256(c2[2960],_mm256_xor_si256(c2[4011],_mm256_xor_si256(c2[4539],_mm256_xor_si256(c2[10879],_mm256_xor_si256(c2[11407],_mm256_xor_si256(c2[13539],_mm256_xor_si256(c2[12491],_mm256_xor_si256(c2[13019],_mm256_xor_si256(c2[10371],_mm256_xor_si256(c2[10899],_mm256_xor_si256(c2[8261],_mm256_xor_si256(c2[12507],_mm256_xor_si256(c2[1944],_mm256_xor_si256(c2[10930],_mm256_xor_si256(c2[11458],_mm256_xor_si256(c2[5664],_mm256_xor_si256(c2[1448],_mm256_xor_si256(c2[8310],_mm256_xor_si256(c2[8838],_mm256_xor_si256(c2[9912],_mm256_xor_si256(c2[1465],_mm256_xor_si256(c2[1993],_mm256_xor_si256(c2[6222],_mm256_xor_si256(c2[6750],_mm256_xor_si256(c2[9940],_mm256_xor_si256(c2[8356],_mm256_xor_si256(c2[8884],_mm256_xor_si256(c2[7829],_mm256_xor_si256(c2[8357],_mm256_xor_si256(c2[11018],_mm256_xor_si256(c2[6271],_mm256_xor_si256(c2[6795],_mm256_xor_si256(c2[7323],_mm256_xor_si256(c2[5767],_mm256_xor_si256(c2[6825],_mm256_xor_si256(c2[7353],_mm256_xor_si256(c2[3658],_mm256_xor_si256(c2[4186],_mm256_xor_si256(c2[14239],_mm256_xor_si256(c2[8952],_mm256_xor_si256(c2[2624],c2[3152])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 33
d2[396]=_mm256_xor_si256(c2[1618],_mm256_xor_si256(c2[4272],_mm256_xor_si256(c2[5027],c2[5259])));
//row: 34
d2[408]=_mm256_xor_si256(c2[3175],_mm256_xor_si256(c2[10732],_mm256_xor_si256(c2[5646],c2[13089])));
//row: 35
d2[420]=_mm256_xor_si256(c2[15317],_mm256_xor_si256(c2[11626],_mm256_xor_si256(c2[12146],_mm256_xor_si256(c2[15844],_mm256_xor_si256(c2[15344],_mm256_xor_si256(c2[2140],_mm256_xor_si256(c2[563],_mm256_xor_si256(c2[34],_mm256_xor_si256(c2[14841],_mm256_xor_si256(c2[11674],_mm256_xor_si256(c2[9558],_mm256_xor_si256(c2[14335],_mm256_xor_si256(c2[10114],_mm256_xor_si256(c2[5360],_mm256_xor_si256(c2[5381],_mm256_xor_si256(c2[11718],_mm256_xor_si256(c2[15412],_mm256_xor_si256(c2[16489],_mm256_xor_si256(c2[13848],_mm256_xor_si256(c2[5404],_mm256_xor_si256(c2[1203],_mm256_xor_si256(c2[5953],_mm256_xor_si256(c2[9122],_mm256_xor_si256(c2[8074],_mm256_xor_si256(c2[11262],_mm256_xor_si256(c2[11260],_mm256_xor_si256(c2[1753],_mm256_xor_si256(c2[11286],_mm256_xor_si256(c2[5473],_mm256_xor_si256(c2[1258],_mm256_xor_si256(c2[3918],_mm256_xor_si256(c2[15001],_mm256_xor_si256(c2[4978],_mm256_xor_si256(c2[5525],_mm256_xor_si256(c2[6048],_mm256_xor_si256(c2[7632],_mm256_xor_si256(c2[12419],_mm256_xor_si256(c2[9245],_mm256_xor_si256(c2[14525],_mm256_xor_si256(c2[14552],_mm256_xor_si256(c2[295],_mm256_xor_si256(c2[9267],_mm256_xor_si256(c2[1344],_mm256_xor_si256(c2[8239],_mm256_xor_si256(c2[9818],_mm256_xor_si256(c2[16686],_mm256_xor_si256(c2[1923],_mm256_xor_si256(c2[1403],_mm256_xor_si256(c2[16178],_mm256_xor_si256(c2[891],_mm256_xor_si256(c2[7235],_mm256_xor_si256(c2[16737],_mm256_xor_si256(c2[10955],_mm256_xor_si256(c2[6727],_mm256_xor_si256(c2[14117],_mm256_xor_si256(c2[15203],_mm256_xor_si256(c2[7272],_mm256_xor_si256(c2[12029],_mm256_xor_si256(c2[15219],_mm256_xor_si256(c2[14163],_mm256_xor_si256(c2[13636],_mm256_xor_si256(c2[16297],_mm256_xor_si256(c2[11550],_mm256_xor_si256(c2[12602],_mm256_xor_si256(c2[11046],_mm256_xor_si256(c2[12632],_mm256_xor_si256(c2[9465],_mm256_xor_si256(c2[2623],_mm256_xor_si256(c2[14243],c2[8431])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 36
d2[432]=_mm256_xor_si256(c2[9510],_mm256_xor_si256(c2[13545],_mm256_xor_si256(c2[5121],c2[11520])));
//row: 37
d2[444]=_mm256_xor_si256(c2[3169],_mm256_xor_si256(c2[3697],_mm256_xor_si256(c2[6],_mm256_xor_si256(c2[538],_mm256_xor_si256(c2[4224],_mm256_xor_si256(c2[3196],_mm256_xor_si256(c2[3724],_mm256_xor_si256(c2[7427],_mm256_xor_si256(c2[5838],_mm256_xor_si256(c2[6896],_mm256_xor_si256(c2[2693],_mm256_xor_si256(c2[3221],_mm256_xor_si256(c2[54],_mm256_xor_si256(c2[14833],_mm256_xor_si256(c2[2187],_mm256_xor_si256(c2[2715],_mm256_xor_si256(c2[15389],_mm256_xor_si256(c2[10635],_mm256_xor_si256(c2[10656],_mm256_xor_si256(c2[98],_mm256_xor_si256(c2[3792],_mm256_xor_si256(c2[4353],_mm256_xor_si256(c2[4881],_mm256_xor_si256(c2[2240],_mm256_xor_si256(c2[10691],_mm256_xor_si256(c2[5962],_mm256_xor_si256(c2[6490],_mm256_xor_si256(c2[11240],_mm256_xor_si256(c2[14409],_mm256_xor_si256(c2[16537],_mm256_xor_si256(c2[16547],_mm256_xor_si256(c2[7040],_mm256_xor_si256(c2[16561],_mm256_xor_si256(c2[10760],_mm256_xor_si256(c2[6533],_mm256_xor_si256(c2[8665],_mm256_xor_si256(c2[9193],_mm256_xor_si256(c2[3393],_mm256_xor_si256(c2[10253],_mm256_xor_si256(c2[10272],_mm256_xor_si256(c2[10800],_mm256_xor_si256(c2[11335],_mm256_xor_si256(c2[12919],_mm256_xor_si256(c2[271],_mm256_xor_si256(c2[799],_mm256_xor_si256(c2[14520],_mm256_xor_si256(c2[2905],_mm256_xor_si256(c2[2404],_mm256_xor_si256(c2[2932],_mm256_xor_si256(c2[5570],_mm256_xor_si256(c2[14554],_mm256_xor_si256(c2[12986],_mm256_xor_si256(c2[13514],_mm256_xor_si256(c2[15105],_mm256_xor_si256(c2[5066],_mm256_xor_si256(c2[9818],_mm256_xor_si256(c2[7210],_mm256_xor_si256(c2[6678],_mm256_xor_si256(c2[4570],_mm256_xor_si256(c2[5650],_mm256_xor_si256(c2[6178],_mm256_xor_si256(c2[12510],_mm256_xor_si256(c2[5117],_mm256_xor_si256(c2[15702],_mm256_xor_si256(c2[16230],_mm256_xor_si256(c2[12002],_mm256_xor_si256(c2[2497],_mm256_xor_si256(c2[3583],_mm256_xor_si256(c2[12559],_mm256_xor_si256(c2[409],_mm256_xor_si256(c2[3083],_mm256_xor_si256(c2[3611],_mm256_xor_si256(c2[2555],_mm256_xor_si256(c2[2016],_mm256_xor_si256(c2[4161],_mm256_xor_si256(c2[4689],_mm256_xor_si256(c2[16825],_mm256_xor_si256(c2[994],_mm256_xor_si256(c2[15793],_mm256_xor_si256(c2[16321],_mm256_xor_si256(c2[1012],_mm256_xor_si256(c2[14740],_mm256_xor_si256(c2[7370],_mm256_xor_si256(c2[7898],_mm256_xor_si256(c2[2623],c2[13706])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 38
d2[456]=_mm256_xor_si256(c2[13205],_mm256_xor_si256(c2[9197],_mm256_xor_si256(c2[777],c2[11910])));
//row: 39
d2[468]=_mm256_xor_si256(c2[1088],_mm256_xor_si256(c2[15386],_mm256_xor_si256(c2[13906],c2[5217])));
//row: 40
d2[480]=_mm256_xor_si256(c2[7925],_mm256_xor_si256(c2[2833],c2[13089]));
//row: 41
d2[492]=_mm256_xor_si256(c2[10585],_mm256_xor_si256(c2[13809],_mm256_xor_si256(c2[6028],c2[441])));
//row: 42
d2[504]=_mm256_xor_si256(c2[7396],_mm256_xor_si256(c2[3705],_mm256_xor_si256(c2[3697],_mm256_xor_si256(c2[4225],_mm256_xor_si256(c2[7395],_mm256_xor_si256(c2[7923],_mm256_xor_si256(c2[8979],_mm256_xor_si256(c2[7423],_mm256_xor_si256(c2[10586],_mm256_xor_si256(c2[11114],_mm256_xor_si256(c2[9009],_mm256_xor_si256(c2[9537],_mm256_xor_si256(c2[6920],_mm256_xor_si256(c2[3753],_mm256_xor_si256(c2[1109],_mm256_xor_si256(c2[1637],_mm256_xor_si256(c2[6414],_mm256_xor_si256(c2[2193],_mm256_xor_si256(c2[13806],_mm256_xor_si256(c2[14334],_mm256_xor_si256(c2[14355],_mm256_xor_si256(c2[3269],_mm256_xor_si256(c2[3797],_mm256_xor_si256(c2[6963],_mm256_xor_si256(c2[7491],_mm256_xor_si256(c2[7488],_mm256_xor_si256(c2[8568],_mm256_xor_si256(c2[5939],_mm256_xor_si256(c2[13850],_mm256_xor_si256(c2[14378],_mm256_xor_si256(c2[10177],_mm256_xor_si256(c2[14411],_mm256_xor_si256(c2[14939],_mm256_xor_si256(c2[673],_mm256_xor_si256(c2[1201],_mm256_xor_si256(c2[3341],_mm256_xor_si256(c2[2811],_mm256_xor_si256(c2[3339],_mm256_xor_si256(c2[10211],_mm256_xor_si256(c2[10739],_mm256_xor_si256(c2[3365],_mm256_xor_si256(c2[13931],_mm256_xor_si256(c2[14459],_mm256_xor_si256(c2[9704],_mm256_xor_si256(c2[10232],_mm256_xor_si256(c2[12892],_mm256_xor_si256(c2[7080],_mm256_xor_si256(c2[13424],_mm256_xor_si256(c2[13952],_mm256_xor_si256(c2[14499],_mm256_xor_si256(c2[14506],_mm256_xor_si256(c2[15034],_mm256_xor_si256(c2[16090],_mm256_xor_si256(c2[16618],_mm256_xor_si256(c2[4498],_mm256_xor_si256(c2[1324],_mm256_xor_si256(c2[6076],_mm256_xor_si256(c2[6604],_mm256_xor_si256(c2[6631],_mm256_xor_si256(c2[9269],_mm256_xor_si256(c2[818],_mm256_xor_si256(c2[1346],_mm256_xor_si256(c2[318],_mm256_xor_si256(c2[1369],_mm256_xor_si256(c2[1897],_mm256_xor_si256(c2[8237],_mm256_xor_si256(c2[8765],_mm256_xor_si256(c2[10897],_mm256_xor_si256(c2[9849],_mm256_xor_si256(c2[10377],_mm256_xor_si256(c2[7729],_mm256_xor_si256(c2[8257],_mm256_xor_si256(c2[9865],_mm256_xor_si256(c2[16209],_mm256_xor_si256(c2[8288],_mm256_xor_si256(c2[8816],_mm256_xor_si256(c2[3034],_mm256_xor_si256(c2[15701],_mm256_xor_si256(c2[5668],_mm256_xor_si256(c2[6196],_mm256_xor_si256(c2[7282],_mm256_xor_si256(c2[15730],_mm256_xor_si256(c2[16258],_mm256_xor_si256(c2[3580],_mm256_xor_si256(c2[4108],_mm256_xor_si256(c2[7298],_mm256_xor_si256(c2[5714],_mm256_xor_si256(c2[6242],_mm256_xor_si256(c2[5187],_mm256_xor_si256(c2[5715],_mm256_xor_si256(c2[8376],_mm256_xor_si256(c2[3629],_mm256_xor_si256(c2[4153],_mm256_xor_si256(c2[4681],_mm256_xor_si256(c2[3125],_mm256_xor_si256(c2[4183],_mm256_xor_si256(c2[4711],_mm256_xor_si256(c2[1016],_mm256_xor_si256(c2[1544],_mm256_xor_si256(c2[11597],_mm256_xor_si256(c2[6322],_mm256_xor_si256(c2[16877],c2[510]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 43
d2[516]=_mm256_xor_si256(c2[14786],_mm256_xor_si256(c2[11095],_mm256_xor_si256(c2[11627],_mm256_xor_si256(c2[14785],_mm256_xor_si256(c2[15313],_mm256_xor_si256(c2[14813],_mm256_xor_si256(c2[1609],_mm256_xor_si256(c2[16399],_mm256_xor_si256(c2[32],_mm256_xor_si256(c2[9003],_mm256_xor_si256(c2[14310],_mm256_xor_si256(c2[11143],_mm256_xor_si256(c2[9027],_mm256_xor_si256(c2[13804],_mm256_xor_si256(c2[9583],_mm256_xor_si256(c2[4301],_mm256_xor_si256(c2[4829],_mm256_xor_si256(c2[4850],_mm256_xor_si256(c2[11187],_mm256_xor_si256(c2[14353],_mm256_xor_si256(c2[14881],_mm256_xor_si256(c2[15970],_mm256_xor_si256(c2[13329],_mm256_xor_si256(c2[4873],_mm256_xor_si256(c2[672],_mm256_xor_si256(c2[5434],_mm256_xor_si256(c2[8075],_mm256_xor_si256(c2[8603],_mm256_xor_si256(c2[10731],_mm256_xor_si256(c2[10729],_mm256_xor_si256(c2[706],_mm256_xor_si256(c2[1234],_mm256_xor_si256(c2[10755],_mm256_xor_si256(c2[4954],_mm256_xor_si256(c2[199],_mm256_xor_si256(c2[727],_mm256_xor_si256(c2[3387],_mm256_xor_si256(c2[14482],_mm256_xor_si256(c2[4447],_mm256_xor_si256(c2[4994],_mm256_xor_si256(c2[5529],_mm256_xor_si256(c2[6585],_mm256_xor_si256(c2[7113],_mm256_xor_si256(c2[11888],_mm256_xor_si256(c2[8714],_mm256_xor_si256(c2[13466],_mm256_xor_si256(c2[13994],_mm256_xor_si256(c2[14021],_mm256_xor_si256(c2[16659],_mm256_xor_si256(c2[8208],_mm256_xor_si256(c2[8736],_mm256_xor_si256(c2[7708],_mm256_xor_si256(c2[9299],_mm256_xor_si256(c2[15627],_mm256_xor_si256(c2[16155],_mm256_xor_si256(c2[1392],_mm256_xor_si256(c2[872],_mm256_xor_si256(c2[15131],_mm256_xor_si256(c2[15659],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[6704],_mm256_xor_si256(c2[16206],_mm256_xor_si256(c2[10424],_mm256_xor_si256(c2[6196],_mm256_xor_si256(c2[13058],_mm256_xor_si256(c2[13586],_mm256_xor_si256(c2[2500],_mm256_xor_si256(c2[14672],_mm256_xor_si256(c2[6753],_mm256_xor_si256(c2[10970],_mm256_xor_si256(c2[11498],_mm256_xor_si256(c2[14688],_mm256_xor_si256(c2[13632],_mm256_xor_si256(c2[12577],_mm256_xor_si256(c2[13105],_mm256_xor_si256(c2[9939],_mm256_xor_si256(c2[15778],_mm256_xor_si256(c2[11019],_mm256_xor_si256(c2[12083],_mm256_xor_si256(c2[10515],_mm256_xor_si256(c2[12101],_mm256_xor_si256(c2[8406],_mm256_xor_si256(c2[8934],_mm256_xor_si256(c2[2092],_mm256_xor_si256(c2[13712],_mm256_xor_si256(c2[7372],c2[7900]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 44
d2[528]=_mm256_xor_si256(c2[2646],_mm256_xor_si256(c2[15850],_mm256_xor_si256(c2[16370],_mm256_xor_si256(c2[3173],_mm256_xor_si256(c2[8450],_mm256_xor_si256(c2[2673],_mm256_xor_si256(c2[6364],_mm256_xor_si256(c2[4787],_mm256_xor_si256(c2[2170],_mm256_xor_si256(c2[15898],_mm256_xor_si256(c2[13782],_mm256_xor_si256(c2[1664],_mm256_xor_si256(c2[14338],_mm256_xor_si256(c2[9584],_mm256_xor_si256(c2[9605],_mm256_xor_si256(c2[15942],_mm256_xor_si256(c2[2741],_mm256_xor_si256(c2[3818],_mm256_xor_si256(c2[1177],_mm256_xor_si256(c2[9628],_mm256_xor_si256(c2[5427],_mm256_xor_si256(c2[10177],_mm256_xor_si256(c2[13346],_mm256_xor_si256(c2[15486],_mm256_xor_si256(c2[15484],_mm256_xor_si256(c2[5977],_mm256_xor_si256(c2[7562],_mm256_xor_si256(c2[15510],_mm256_xor_si256(c2[9697],_mm256_xor_si256(c2[5482],_mm256_xor_si256(c2[8142],_mm256_xor_si256(c2[2330],_mm256_xor_si256(c2[9202],_mm256_xor_si256(c2[1805],_mm256_xor_si256(c2[9749],_mm256_xor_si256(c2[10272],_mm256_xor_si256(c2[11856],_mm256_xor_si256(c2[16643],_mm256_xor_si256(c2[13469],_mm256_xor_si256(c2[1854],_mm256_xor_si256(c2[1881],_mm256_xor_si256(c2[4519],_mm256_xor_si256(c2[13491],_mm256_xor_si256(c2[12463],_mm256_xor_si256(c2[14042],_mm256_xor_si256(c2[4015],_mm256_xor_si256(c2[6147],_mm256_xor_si256(c2[5627],_mm256_xor_si256(c2[3507],_mm256_xor_si256(c2[5115],_mm256_xor_si256(c2[11459],_mm256_xor_si256(c2[4066],_mm256_xor_si256(c2[15179],_mm256_xor_si256(c2[10951],_mm256_xor_si256(c2[1446],_mm256_xor_si256(c2[2520],_mm256_xor_si256(c2[11496],_mm256_xor_si256(c2[16253],_mm256_xor_si256(c2[2548],_mm256_xor_si256(c2[1492],_mm256_xor_si256(c2[965],_mm256_xor_si256(c2[3626],_mm256_xor_si256(c2[15774],_mm256_xor_si256(c2[16826],_mm256_xor_si256(c2[15270],_mm256_xor_si256(c2[16856],_mm256_xor_si256(c2[13689],_mm256_xor_si256(c2[6847],_mm256_xor_si256(c2[1560],c2[12655])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 45
d2[540]=_mm256_xor_si256(c2[3724],_mm256_xor_si256(c2[11236],c2[8160]));
}
}
......@@ -5072,6 +5072,8 @@ int encode_parity_check_part(unsigned char *c,unsigned char *d, short BG,short Z
// calculate each row in base graph
//row: 0
d[i2+0*Zc]=c2[307]^c2[76]^c2[205]^c2[276]^c2[787]^c2[1018]^c2[855]^c2[1586]^c2[1612]^c2[1864]^c2[2673]^c2[2377]^c2[2304]^c2[3360]^c2[3404]^c2[3347]^c2[4021]^c2[3984]^c2[4096]^c2[4824]^c2[4769]^c2[4807]^c2[5707]^c2[5643]^c2[5529]^c2[6475]^c2[6304]^c2[6200]^c2[7229]^c2[7090]^c2[6975]^c2[7968]^c2[7809]^c2[7812]^c2[8557]^c2[8743]^c2[8753]^c2[9233]^c2[9558]^c2[9447]^c2[10341]^c2[10184]^c2[10325]^c2[10969]^c2[10840]^c2[10964]^c2[11735]^c2[11619]^c2[11573]^c2[12394]^c2[12642]^c2[12592]^c2[13170]^c2[13187]^c2[13356]^c2[14066]^c2[14064]^c2[14095]^c2[14772]^c2[14923]^c2[14797]^c2[15690]^c2[15373]^c2[15399]^c2[16474]^c2[16240]^c2[16485];
// if ((i2&31)==0) printf("\ni2 %d: ",i2>>5);
// printf("%d,",d[i2]);
//row: 1
d[i2+1*Zc]=c2[307]^c2[308]^c2[77]^c2[206]^c2[277]^c2[787]^c2[788]^c2[1019]^c2[856]^c2[1586]^c2[1587]^c2[1613]^c2[1865]^c2[2673]^c2[2674]^c2[2378]^c2[2305]^c2[3361]^c2[3405]^c2[3348]^c2[4021]^c2[4022]^c2[3985]^c2[4097]^c2[4824]^c2[4825]^c2[4770]^c2[4808]^c2[5708]^c2[5644]^c2[5530]^c2[6476]^c2[6305]^c2[6201]^c2[7229]^c2[7230]^c2[7091]^c2[6976]^c2[7968]^c2[7969]^c2[7810]^c2[7813]^c2[8557]^c2[8558]^c2[8744]^c2[8754]^c2[9233]^c2[9234]^c2[9559]^c2[9448]^c2[10341]^c2[10342]^c2[10185]^c2[10326]^c2[10970]^c2[10841]^c2[10965]^c2[11735]^c2[11736]^c2[11620]^c2[11574]^c2[12394]^c2[12395]^c2[12643]^c2[12593]^c2[13171]^c2[13188]^c2[13357]^c2[14066]^c2[14067]^c2[14065]^c2[14096]^c2[14772]^c2[14773]^c2[14924]^c2[14798]^c2[15690]^c2[15691]^c2[15374]^c2[15400]^c2[16474]^c2[16475]^c2[16241]^c2[16486];
//row: 2
......
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <types.h>
#include "assertions.h"
#include "PHY/TOOLS/time_meas.h"
#include "ldpc384_byte.c"
#include "ldpc352_byte.c"
#include "ldpc320_byte.c"
#include "ldpc288_byte.c"
#include "ldpc256_byte.c"
#include "ldpc240_byte.c"
#include "ldpc224_byte.c"
#include "ldpc208_byte.c"
#include "ldpc192_byte.c"
void encode_parity_check_part_optim(unsigned char *c,unsigned char *d, short BG,short Zc,short Kb)
{
AssertFatal(BG==1,"BG %d is not supported yet\n",BG);
if (BG==1)
{
switch (Zc)
{
case 2: break;
case 3: break;
case 4: break;
case 5: break;
case 6: break;
case 7: break;
case 8: break;
case 9: break;
case 10: break;
case 11: break;
case 12: break;
case 13: break;
case 14: break;
case 15: break;
case 16: break;
case 18: break;
case 20: break;
case 22: break;
case 24: break;
case 26: break;
case 28: break;
case 30: break;
case 32: break;
case 36: break;
case 40: break;
case 44: break;
case 48: break;
case 52: break;
case 56: break;
case 60: break;
case 64: break;
case 72: break;
case 80: break;
case 88: break;
case 96: break;
case 104: break;
case 112: break;
case 120: break;
case 128: break;
case 144: break;
case 160: break;
// case 176: ldpc176_byte(c,d); break;
case 192: ldpc192_byte(c,d); break;
case 208: ldpc208_byte(c,d); break;
case 224: ldpc224_byte(c,d); break;
case 240: ldpc240_byte(c,d); break;
case 256: ldpc256_byte(c,d); break;
case 288: ldpc288_byte(c,d); break;
case 320: ldpc320_byte(c,d); break;
case 352: ldpc352_byte(c,d); break;
case 384: ldpc384_byte(c,d); break;
}
}
}
int ldpc_encoder_optim(unsigned char *test_input,unsigned char *channel_input,short block_length,int nom_rate,int denom_rate,time_stats_t *tinput,time_stats_t *tprep,time_stats_t *tparity,time_stats_t *toutput)
{
short BG,Zc,Kb,nrows,ncols;
int i,i1;
int no_punctured_columns,removed_bit;
//Table of possible lifting sizes
short lift_size[51]= {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,20,22,24,26,28,30,32,36,40,44,48,52,56,60,64,72,80,88,96,104,112,120,128,144,160,176,192,208,224,240,256,288,320,352,384};
int simd_size;
//determine number of bits in codeword
//if (block_length>3840)
//{
AssertFatal(block_length>3840,"Block length < 3840 not supported yet\n");
BG=1;
Kb = 22;
nrows=46; //parity check bits
ncols=22; //info bits
//}
/* else if (block_length<=3840)
{
BG=2;
nrows=42; //parity check bits
ncols=10; // info bits
if (block_length>640)
Kb = 10;
else if (block_length>560)
Kb = 9;
else if (block_length>192)
Kb = 8;
else
Kb = 6;
} */
//find minimum value in all sets of lifting size
Zc=0;
for (i1=0; i1 < 51; i1++)
{
if (lift_size[i1] >= (double) block_length/Kb)
{
Zc = lift_size[i1];
//printf("%d\n",Zc);
break;
}
}
AssertFatal(Zc>0,"no valid Zc found for block length %d\n",block_length);
if ((Zc&31) > 0) simd_size = 16;
else simd_size = 32;
unsigned char c[22*Zc] __attribute__((aligned(32))); //padded input, unpacked, max size
unsigned char d[46*Zc] __attribute__((aligned(32))); //coded parity part output, unpacked, max size
unsigned char c_extension[2*22*Zc*simd_size] __attribute__((aligned(32))); //double size matrix of c
// calculate number of punctured bits
no_punctured_columns=(int)((nrows-2)*Zc+block_length-block_length/((float)nom_rate/(float)denom_rate))/Zc;
removed_bit=(nrows-no_punctured_columns-2) * Zc+block_length-(int)(block_length/((float)nom_rate/(float)denom_rate));
// printf("%d\n",no_punctured_columns);
// printf("%d\n",removed_bit);
// unpack input
// memset(c,0,sizeof(unsigned char) * ncols * Zc);
start_meas(tinput);
for (i=0; i<block_length; i++)
{
//c[i] = test_input[i/8]<<(i%8);
//c[i]=c[i]>>7&1;
c[i]=(test_input[i/8]&(1<<(i&7)))>>(i&7);
}
stop_meas(tinput);
// extend matrix
start_meas(tprep);
for (i1=0; i1 < ncols; i1++)
{
memcpy(&c_extension[2*i1*Zc], &c[i1*Zc], Zc*sizeof(unsigned char));
memcpy(&c_extension[(2*i1+1)*Zc], &c[i1*Zc], Zc*sizeof(unsigned char));
}
for (i1=1;i1<simd_size;i1++) {
memcpy(&c_extension[(2*ncols*Zc*i1)], &c_extension[i1], (2*ncols*Zc*sizeof(unsigned char))-i1);
// memset(&c_extension[(2*ncols*Zc*i1)],0,i1);
/*
printf("shift %d: ",i1);
for (int j=0;j<64;j++) printf("%d ",c_extension[(2*ncols*Zc*i1)+j]);
printf("\n");
*/
}
stop_meas(tprep);
//parity check part
start_meas(tparity);
encode_parity_check_part_optim(c_extension, d, BG, Zc, Kb);
stop_meas(tparity);
start_meas(toutput);
// information part and puncture columns
memcpy(&channel_input[0], &c[2*Zc], (block_length-2*Zc)*sizeof(unsigned char));
memcpy(&channel_input[block_length-2*Zc], &d[0], ((nrows-no_punctured_columns) * Zc-removed_bit)*sizeof(unsigned char));
stop_meas(toutput);
return 0;
}
......@@ -3,6 +3,7 @@
#include <stdio.h>
#include <string.h>
#include "Gen_shift_value.h"
#include "assertions.h"
short *choose_generator_matrix(short BG,short Zc)
{
......@@ -335,7 +336,7 @@ int ldpc_encoder_orig(unsigned char *test_input,unsigned char *channel_input,sho
unsigned char channel_temp,temp;
short *Gen_shift_values, *no_shift_values, *pointer_shift_values;
short BG,Zc,Kb,nrows,ncols;
int i,i1,i2,i3,i4,i5,t,t1,temp_prime;
int i,i1,i2,i3,i4,i5,t,var,temp_prime;
int no_punctured_columns,removed_bit;
//Table of possible lifting sizes
short lift_size[51]= {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,20,22,24,26,28,30,32,36,40,44,48,52,56,60,64,72,80,88,96,104,112,120,128,144,160,176,192,208,224,240,256,288,320,352,384};
......@@ -373,6 +374,9 @@ int ldpc_encoder_orig(unsigned char *test_input,unsigned char *channel_input,sho
}
}
int nind=0;
int indlist[1000];
// load base graph of generator matrix
if (BG==1)
{
......@@ -402,6 +406,52 @@ int ldpc_encoder_orig(unsigned char *test_input,unsigned char *channel_input,sho
// parity check part
if (gen_code==1)
{
char fname[100];
sprintf(fname,"ldpc%d_byte.c",Zc);
FILE *fd=fopen(fname,"w");
int shift;
char data_type[100];
char xor_command[100];
int mask;
AssertFatal(fd!=NULL,"cannot open %s\n",fname);
fprintf(fd,"#include \"PHY/sse_intrin.h\"\n");
if ((Zc&31)==0) {
shift=5; // AVX2 - 256-bit SIMD
mask=31;
strcpy(data_type,"__m256i");
strcpy(xor_command,"_mm256_xor_si256");
}
else if ((Zc&15)==0) {
shift=4; // SSE4 - 128-bit SIMD
mask=15;
strcpy(data_type,"__m128i");
strcpy(xor_command,"_mm_xor_si128");
}
else if ((Zc&7)==0) {
shift=3; // MMX - 64-bit SIMD
mask=7;
strcpy(data_type,"__m64i");
strcpy(xor_command,"_mm_xor_si64");
}
else {
shift=0; // no SIMD
mask=0;
strcpy(data_type,"uint8_t");
strcpy(xor_command,"scalar_xor");
fprintf(fd,"#define scalar_xor(a,b) ((a)^(b))\n");
}
fprintf(fd,"// generated code for Zc=%d, byte encoding\n",Zc);
fprintf(fd,"static inline void ldpc%d_byte(uint8_t *c,uint8_t *d) {\n",Zc);
fprintf(fd," %s *csimd=(%s *)c,*dsimd=(%s *)d;\n\n",data_type,data_type,data_type);
fprintf(fd," %s *c2,*d2;\n\n",data_type);
fprintf(fd," int i2;\n");
fprintf(fd," for (i2=0; i2<%d; i2++) {\n",Zc>>shift);
for (i2=0; i2 < 1; i2++)
{
t=Kb*Zc+i2;
......@@ -414,6 +464,61 @@ int ldpc_encoder_orig(unsigned char *test_input,unsigned char *channel_input,sho
c[i5*Zc+Zc-1] = temp;
}
// calculate each row in base graph
fprintf(fd," c2=&csimd[i2];\n");
fprintf(fd," d2=&dsimd[i2];\n");
for (i1=0; i1 < nrows-no_punctured_columns; i1++)
{
channel_temp=0;
fprintf(fd,"\n//row: %d\n",i1);
fprintf(fd," d2[%d]=",(Zc*i1)>>shift);
nind=0;
for (i3=0; i3 < Kb; i3++)
{
temp_prime=i1 * ncols + i3;
for (i4=0; i4 < no_shift_values[temp_prime]; i4++)
{
var=(int)((i3*Zc + (Gen_shift_values[ pointer_shift_values[temp_prime]+i4 ]+1)%Zc)/Zc);
int index =var*2*Zc + (i3*Zc + (Gen_shift_values[ pointer_shift_values[temp_prime]+i4 ]+1)%Zc) % Zc;
indlist[nind++] = ((index&mask)*((2*Zc)>>shift)*Kb)+(index>>shift);
}
}
for (i4=0;i4<nind-1;i4++) {
fprintf(fd,"%s(c2[%d],",xor_command,indlist[i4]);
}
fprintf(fd,"c2[%d]",indlist[i4]);
for (i4=0;i4<nind-1;i4++) fprintf(fd,")");
fprintf(fd,";\n");
d[t+i1*Zc]=channel_temp;
//channel_input[t+i1*Zc]=channel_temp;
}
fprintf(fd," }\n}\n");
}
fclose(fd);
}
else if(gen_code==0)
{
for (i2=0; i2 < Zc; i2++) {
//t=Kb*Zc+i2;
//rotate matrix here
for (i5=0; i5 < Kb; i5++)
{
temp = c[i5*Zc];
memmove(&c[i5*Zc], &c[i5*Zc+1], (Zc-1)*sizeof(unsigned char));
c[i5*Zc+Zc-1] = temp;
}
// calculate each row in base graph
for (i1=0; i1 < nrows-no_punctured_columns; i1++)
{
......@@ -435,10 +540,11 @@ int ldpc_encoder_orig(unsigned char *test_input,unsigned char *channel_input,sho
}
if (gen_code)
printf("\n");
d[t+i1*Zc]=channel_temp;
d[i2+i1*Zc]=channel_temp;
//channel_input[t+i1*Zc]=channel_temp;
}
}
}
// information part and puncture columns
memcpy(&channel_input[0], &c[2*Zc], (block_length-2*Zc)*sizeof(unsigned char));
......
......@@ -766,7 +766,7 @@ int dlsch_encoding(PHY_VARS_eNB *eNB,
unsigned int Kr=0,Kr_bytes,r,r_offset=0,Kr_int=0;
// unsigned short m=dlsch->harq_processes[harq_pid]->mcs;
uint8_t beamforming_mode=0;
double rate = 0.33;
//double rate = 0.33;
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ENCODING, VCD_FUNCTION_IN);
......@@ -899,13 +899,13 @@ int dlsch_encoding(PHY_VARS_eNB *eNB,
Kr_int = Kr;
#ifdef DEBUG_DLSCH_CODING
printf("start ldpc encoder B %d, rate %f\n",dlsch->harq_processes[harq_pid]->B,rate);
printf("start ldpc encoder B %d\n",dlsch->harq_processes[harq_pid]->B);
printf("input %d %d %d %d %d \n", dlsch->harq_processes[harq_pid]->c[r][0], dlsch->harq_processes[harq_pid]->c[r][1], dlsch->harq_processes[harq_pid]->c[r][2],dlsch->harq_processes[harq_pid]->c[r][3], dlsch->harq_processes[harq_pid]->c[r][4]);
#endif
start_meas(te_stats);
memset(dlsch->harq_processes[harq_pid]->d[r],0,(96+12+3+3*8448)*sizeof(uint8_t));
ldpc_encoder((unsigned char*)dlsch->harq_processes[harq_pid]->c[r],(unsigned char*)&dlsch->harq_processes[harq_pid]->d[r][96],Kr,rate);
ldpc_encoder((unsigned char*)dlsch->harq_processes[harq_pid]->c[r],(unsigned char*)&dlsch->harq_processes[harq_pid]->d[r][96],Kr,1,3);
stop_meas(te_stats);
#endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment