adding LDPC encoder and decoder (from mwc18 branch)

This commit is contained in:
Florian Kaltenberger
2018-04-09 13:10:17 -07:00
parent 4b0a1c06c7
commit b61e800764
979 changed files with 21685 additions and 1 deletions
@@ -0,0 +1,151 @@
#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]));
}
}