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=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]));
}
}