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=208, byte encoding
static inline void ldpc208_byte(uint8_t *c,uint8_t *d) {
__m128i *csimd=(__m128i *)c,*dsimd=(__m128i *)d;
__m128i *c2,*d2;
int i2;
for (i2=0; i2<13; i2++) {
c2=&csimd[i2];
d2=&dsimd[i2];
//row: 0
d2[0]=_mm_xor_si128(c2[4010],_mm_xor_si128(c2[7443],_mm_xor_si128(c2[6293],_mm_xor_si128(c2[6298],_mm_xor_si128(c2[4036],_mm_xor_si128(c2[6898],_mm_xor_si128(c2[7468],_mm_xor_si128(c2[4062],_mm_xor_si128(c2[1203],_mm_xor_si128(c2[6923],_mm_xor_si128(c2[4088],_mm_xor_si128(c2[1795],_mm_xor_si128(c2[4662],_mm_xor_si128(c2[4114],_mm_xor_si128(c2[6400],_mm_xor_si128(c2[4680],_mm_xor_si128(c2[4140],_mm_xor_si128(c2[709],_mm_xor_si128(c2[6428],_mm_xor_si128(c2[4166],_mm_xor_si128(c2[7022],_mm_xor_si128(c2[4741],_mm_xor_si128(c2[4192],_mm_xor_si128(c2[4195],_mm_xor_si128(c2[7053],_mm_xor_si128(c2[4218],_mm_xor_si128(c2[7652],_mm_xor_si128(c2[7650],_mm_xor_si128(c2[4244],_mm_xor_si128(c2[5388],_mm_xor_si128(c2[807],_mm_xor_si128(c2[4270],_mm_xor_si128(c2[5985],_mm_xor_si128(c2[8270],_mm_xor_si128(c2[4296],_mm_xor_si128(c2[4297],_mm_xor_si128(c2[6017],_mm_xor_si128(c2[4322],_mm_xor_si128(c2[2038],_mm_xor_si128(c2[887],_mm_xor_si128(c2[4348],_mm_xor_si128(c2[1485],_mm_xor_si128(c2[8357],_mm_xor_si128(c2[4374],_mm_xor_si128(c2[2088],_mm_xor_si128(c2[7234],_mm_xor_si128(c2[4400],_mm_xor_si128(c2[7832],_mm_xor_si128(c2[7265],_mm_xor_si128(c2[4426],_mm_xor_si128(c2[3284],_mm_xor_si128(c2[2144],_mm_xor_si128(c2[4452],_mm_xor_si128(c2[3883],_mm_xor_si128(c2[2734],_mm_xor_si128(c2[4478],_mm_xor_si128(c2[6192],_mm_xor_si128(c2[9048],_mm_xor_si128(c2[4504],_mm_xor_si128(c2[9077],_mm_xor_si128(c2[1075],_mm_xor_si128(c2[4530],_mm_xor_si128(c2[5678],_mm_xor_si128(c2[5674],_mm_xor_si128(c2[4556],_mm_xor_si128(c2[3986],c2[3408]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 1
d2[13]=_mm_xor_si128(c2[0],_mm_xor_si128(c2[4010],_mm_xor_si128(c2[7443],_mm_xor_si128(c2[6293],_mm_xor_si128(c2[6298],_mm_xor_si128(c2[26],_mm_xor_si128(c2[4036],_mm_xor_si128(c2[6898],_mm_xor_si128(c2[7468],_mm_xor_si128(c2[52],_mm_xor_si128(c2[4062],_mm_xor_si128(c2[1203],_mm_xor_si128(c2[6923],_mm_xor_si128(c2[78],_mm_xor_si128(c2[4088],_mm_xor_si128(c2[1795],_mm_xor_si128(c2[4662],_mm_xor_si128(c2[4114],_mm_xor_si128(c2[6400],_mm_xor_si128(c2[4680],_mm_xor_si128(c2[130],_mm_xor_si128(c2[4140],_mm_xor_si128(c2[709],_mm_xor_si128(c2[6428],_mm_xor_si128(c2[156],_mm_xor_si128(c2[4166],_mm_xor_si128(c2[7022],_mm_xor_si128(c2[4741],_mm_xor_si128(c2[4192],_mm_xor_si128(c2[4195],_mm_xor_si128(c2[7053],_mm_xor_si128(c2[4218],_mm_xor_si128(c2[7652],_mm_xor_si128(c2[7650],_mm_xor_si128(c2[234],_mm_xor_si128(c2[4244],_mm_xor_si128(c2[5388],_mm_xor_si128(c2[807],_mm_xor_si128(c2[260],_mm_xor_si128(c2[4270],_mm_xor_si128(c2[5985],_mm_xor_si128(c2[8270],_mm_xor_si128(c2[286],_mm_xor_si128(c2[4296],_mm_xor_si128(c2[4297],_mm_xor_si128(c2[6017],_mm_xor_si128(c2[312],_mm_xor_si128(c2[4322],_mm_xor_si128(c2[2038],_mm_xor_si128(c2[887],_mm_xor_si128(c2[338],_mm_xor_si128(c2[4348],_mm_xor_si128(c2[1485],_mm_xor_si128(c2[8357],_mm_xor_si128(c2[4374],_mm_xor_si128(c2[2088],_mm_xor_si128(c2[7234],_mm_xor_si128(c2[390],_mm_xor_si128(c2[4400],_mm_xor_si128(c2[7832],_mm_xor_si128(c2[7265],_mm_xor_si128(c2[416],_mm_xor_si128(c2[4426],_mm_xor_si128(c2[3284],_mm_xor_si128(c2[2144],_mm_xor_si128(c2[4452],_mm_xor_si128(c2[3883],_mm_xor_si128(c2[2734],_mm_xor_si128(c2[468],_mm_xor_si128(c2[4478],_mm_xor_si128(c2[6192],_mm_xor_si128(c2[9048],_mm_xor_si128(c2[494],_mm_xor_si128(c2[4504],_mm_xor_si128(c2[9077],_mm_xor_si128(c2[1075],_mm_xor_si128(c2[520],_mm_xor_si128(c2[4530],_mm_xor_si128(c2[5678],_mm_xor_si128(c2[5674],_mm_xor_si128(c2[546],_mm_xor_si128(c2[4556],_mm_xor_si128(c2[3986],c2[3408])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 2
d2[26]=_mm_xor_si128(c2[4010],_mm_xor_si128(c2[7443],_mm_xor_si128(c2[2296],_mm_xor_si128(c2[6293],_mm_xor_si128(c2[2288],_mm_xor_si128(c2[6298],_mm_xor_si128(c2[4036],_mm_xor_si128(c2[2888],_mm_xor_si128(c2[6898],_mm_xor_si128(c2[3458],_mm_xor_si128(c2[7468],_mm_xor_si128(c2[4062],_mm_xor_si128(c2[1203],_mm_xor_si128(c2[2913],_mm_xor_si128(c2[6923],_mm_xor_si128(c2[4088],_mm_xor_si128(c2[1795],_mm_xor_si128(c2[652],_mm_xor_si128(c2[4662],_mm_xor_si128(c2[4114],_mm_xor_si128(c2[2403],_mm_xor_si128(c2[6400],_mm_xor_si128(c2[683],_mm_xor_si128(c2[4680],_mm_xor_si128(c2[4140],_mm_xor_si128(c2[709],_mm_xor_si128(c2[2418],_mm_xor_si128(c2[6428],_mm_xor_si128(c2[4166],_mm_xor_si128(c2[3025],_mm_xor_si128(c2[7022],_mm_xor_si128(c2[731],_mm_xor_si128(c2[4741],_mm_xor_si128(c2[4192],_mm_xor_si128(c2[185],_mm_xor_si128(c2[4195],_mm_xor_si128(c2[3043],_mm_xor_si128(c2[7053],_mm_xor_si128(c2[4218],_mm_xor_si128(c2[3642],_mm_xor_si128(c2[7652],_mm_xor_si128(c2[3640],_mm_xor_si128(c2[7650],_mm_xor_si128(c2[4244],_mm_xor_si128(c2[5388],_mm_xor_si128(c2[5961],_mm_xor_si128(c2[807],_mm_xor_si128(c2[4270],_mm_xor_si128(c2[1988],_mm_xor_si128(c2[5985],_mm_xor_si128(c2[4273],_mm_xor_si128(c2[8270],_mm_xor_si128(c2[4296],_mm_xor_si128(c2[4297],_mm_xor_si128(c2[2007],_mm_xor_si128(c2[6017],_mm_xor_si128(c2[4322],_mm_xor_si128(c2[2038],_mm_xor_si128(c2[6041],_mm_xor_si128(c2[887],_mm_xor_si128(c2[4348],_mm_xor_si128(c2[6639],_mm_xor_si128(c2[1485],_mm_xor_si128(c2[4347],_mm_xor_si128(c2[8357],_mm_xor_si128(c2[4374],_mm_xor_si128(c2[7229],_mm_xor_si128(c2[2088],_mm_xor_si128(c2[3224],_mm_xor_si128(c2[7234],_mm_xor_si128(c2[4400],_mm_xor_si128(c2[7832],_mm_xor_si128(c2[3255],_mm_xor_si128(c2[7265],_mm_xor_si128(c2[4426],_mm_xor_si128(c2[3284],_mm_xor_si128(c2[7285],_mm_xor_si128(c2[2144],_mm_xor_si128(c2[4452],_mm_xor_si128(c2[9024],_mm_xor_si128(c2[3883],_mm_xor_si128(c2[7888],_mm_xor_si128(c2[2734],_mm_xor_si128(c2[4478],_mm_xor_si128(c2[2195],_mm_xor_si128(c2[6192],_mm_xor_si128(c2[5051],_mm_xor_si128(c2[9048],_mm_xor_si128(c2[4504],_mm_xor_si128(c2[9077],_mm_xor_si128(c2[6216],_mm_xor_si128(c2[1075],_mm_xor_si128(c2[4530],_mm_xor_si128(c2[1668],_mm_xor_si128(c2[5678],_mm_xor_si128(c2[1664],_mm_xor_si128(c2[5674],_mm_xor_si128(c2[4556],_mm_xor_si128(c2[3986],_mm_xor_si128(c2[8562],c2[3408]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 3
d2[39]=_mm_xor_si128(c2[4010],_mm_xor_si128(c2[7443],_mm_xor_si128(c2[6293],_mm_xor_si128(c2[2288],_mm_xor_si128(c2[6298],_mm_xor_si128(c2[4036],_mm_xor_si128(c2[6898],_mm_xor_si128(c2[3458],_mm_xor_si128(c2[7468],_mm_xor_si128(c2[4062],_mm_xor_si128(c2[1203],_mm_xor_si128(c2[6923],_mm_xor_si128(c2[4088],_mm_xor_si128(c2[1795],_mm_xor_si128(c2[652],_mm_xor_si128(c2[4662],_mm_xor_si128(c2[4114],_mm_xor_si128(c2[6400],_mm_xor_si128(c2[683],_mm_xor_si128(c2[4680],_mm_xor_si128(c2[4140],_mm_xor_si128(c2[709],_mm_xor_si128(c2[6428],_mm_xor_si128(c2[4166],_mm_xor_si128(c2[7022],_mm_xor_si128(c2[731],_mm_xor_si128(c2[4741],_mm_xor_si128(c2[4192],_mm_xor_si128(c2[4195],_mm_xor_si128(c2[3043],_mm_xor_si128(c2[7053],_mm_xor_si128(c2[4218],_mm_xor_si128(c2[7652],_mm_xor_si128(c2[3640],_mm_xor_si128(c2[7650],_mm_xor_si128(c2[4244],_mm_xor_si128(c2[5388],_mm_xor_si128(c2[807],_mm_xor_si128(c2[4270],_mm_xor_si128(c2[5985],_mm_xor_si128(c2[4273],_mm_xor_si128(c2[8270],_mm_xor_si128(c2[4296],_mm_xor_si128(c2[4297],_mm_xor_si128(c2[2007],_mm_xor_si128(c2[6017],_mm_xor_si128(c2[4322],_mm_xor_si128(c2[2038],_mm_xor_si128(c2[6041],_mm_xor_si128(c2[887],_mm_xor_si128(c2[4348],_mm_xor_si128(c2[1485],_mm_xor_si128(c2[4347],_mm_xor_si128(c2[8357],_mm_xor_si128(c2[4374],_mm_xor_si128(c2[2088],_mm_xor_si128(c2[3224],_mm_xor_si128(c2[7234],_mm_xor_si128(c2[4400],_mm_xor_si128(c2[7832],_mm_xor_si128(c2[7265],_mm_xor_si128(c2[4426],_mm_xor_si128(c2[3284],_mm_xor_si128(c2[7285],_mm_xor_si128(c2[2144],_mm_xor_si128(c2[4452],_mm_xor_si128(c2[3883],_mm_xor_si128(c2[7888],_mm_xor_si128(c2[2734],_mm_xor_si128(c2[4478],_mm_xor_si128(c2[6192],_mm_xor_si128(c2[5051],_mm_xor_si128(c2[9048],_mm_xor_si128(c2[4504],_mm_xor_si128(c2[9077],_mm_xor_si128(c2[1075],_mm_xor_si128(c2[4530],_mm_xor_si128(c2[5678],_mm_xor_si128(c2[1664],_mm_xor_si128(c2[5674],_mm_xor_si128(c2[4556],_mm_xor_si128(c2[3986],_mm_xor_si128(c2[8562],c2[3408])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 4
d2[52]=_mm_xor_si128(c2[4577],c2[6902]);
//row: 5
d2[65]=_mm_xor_si128(c2[8590],_mm_xor_si128(c2[2872],_mm_xor_si128(c2[1722],_mm_xor_si128(c2[1727],_mm_xor_si128(c2[5159],_mm_xor_si128(c2[8616],_mm_xor_si128(c2[2314],_mm_xor_si128(c2[2897],_mm_xor_si128(c2[2320],_mm_xor_si128(c2[8642],_mm_xor_si128(c2[5783],_mm_xor_si128(c2[2352],_mm_xor_si128(c2[8668],_mm_xor_si128(c2[6375],_mm_xor_si128(c2[78],_mm_xor_si128(c2[4655],_mm_xor_si128(c2[8694],_mm_xor_si128(c2[1829],_mm_xor_si128(c2[109],_mm_xor_si128(c2[8720],_mm_xor_si128(c2[5289],_mm_xor_si128(c2[1857],_mm_xor_si128(c2[8746],_mm_xor_si128(c2[2451],_mm_xor_si128(c2[157],_mm_xor_si128(c2[8772],_mm_xor_si128(c2[8762],_mm_xor_si128(c2[2482],_mm_xor_si128(c2[8798],_mm_xor_si128(c2[3068],_mm_xor_si128(c2[3079],_mm_xor_si128(c2[8824],_mm_xor_si128(c2[817],_mm_xor_si128(c2[5387],_mm_xor_si128(c2[8850],_mm_xor_si128(c2[1414],_mm_xor_si128(c2[3699],_mm_xor_si128(c2[8876],_mm_xor_si128(c2[8877],_mm_xor_si128(c2[1433],_mm_xor_si128(c2[8902],_mm_xor_si128(c2[6605],_mm_xor_si128(c2[5467],_mm_xor_si128(c2[888],_mm_xor_si128(c2[8928],_mm_xor_si128(c2[6065],_mm_xor_si128(c2[3773],_mm_xor_si128(c2[8954],_mm_xor_si128(c2[6668],_mm_xor_si128(c2[2663],_mm_xor_si128(c2[8980],_mm_xor_si128(c2[3261],_mm_xor_si128(c2[2681],_mm_xor_si128(c2[9006],_mm_xor_si128(c2[7864],_mm_xor_si128(c2[6711],_mm_xor_si128(c2[9008],_mm_xor_si128(c2[9032],_mm_xor_si128(c2[8450],_mm_xor_si128(c2[7314],_mm_xor_si128(c2[9058],_mm_xor_si128(c2[1621],_mm_xor_si128(c2[4477],_mm_xor_si128(c2[9084],_mm_xor_si128(c2[4506],_mm_xor_si128(c2[5642],_mm_xor_si128(c2[9110],_mm_xor_si128(c2[1094],_mm_xor_si128(c2[1103],_mm_xor_si128(c2[9136],_mm_xor_si128(c2[8566],_mm_xor_si128(c2[7988],c2[1128]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 6
d2[78]=_mm_xor_si128(c2[3432],_mm_xor_si128(c2[6449],_mm_xor_si128(c2[1986],_mm_xor_si128(c2[1433],_mm_xor_si128(c2[341],_mm_xor_si128(c2[5019],_mm_xor_si128(c2[3902],c2[6817])))))));
//row: 7
d2[91]=_mm_xor_si128(c2[581],_mm_xor_si128(c2[4607],_mm_xor_si128(c2[111],_mm_xor_si128(c2[5339],_mm_xor_si128(c2[8797],c2[7232])))));
//row: 8
d2[104]=_mm_xor_si128(c2[5728],_mm_xor_si128(c2[6292],_mm_xor_si128(c2[10],_mm_xor_si128(c2[574],_mm_xor_si128(c2[8011],_mm_xor_si128(c2[4578],_mm_xor_si128(c2[8588],_mm_xor_si128(c2[8016],_mm_xor_si128(c2[4583],_mm_xor_si128(c2[8580],_mm_xor_si128(c2[6874],_mm_xor_si128(c2[5754],_mm_xor_si128(c2[6318],_mm_xor_si128(c2[8616],_mm_xor_si128(c2[5183],_mm_xor_si128(c2[29],_mm_xor_si128(c2[35],_mm_xor_si128(c2[5753],_mm_xor_si128(c2[599],_mm_xor_si128(c2[1170],_mm_xor_si128(c2[5780],_mm_xor_si128(c2[6344],_mm_xor_si128(c2[2921],_mm_xor_si128(c2[3485],_mm_xor_si128(c2[8641],_mm_xor_si128(c2[5208],_mm_xor_si128(c2[54],_mm_xor_si128(c2[5806],_mm_xor_si128(c2[6370],_mm_xor_si128(c2[3513],_mm_xor_si128(c2[4090],_mm_xor_si128(c2[6380],_mm_xor_si128(c2[2947],_mm_xor_si128(c2[6944],_mm_xor_si128(c2[1802],_mm_xor_si128(c2[5832],_mm_xor_si128(c2[6396],_mm_xor_si128(c2[8118],_mm_xor_si128(c2[4685],_mm_xor_si128(c2[8695],_mm_xor_si128(c2[6398],_mm_xor_si128(c2[2965],_mm_xor_si128(c2[6975],_mm_xor_si128(c2[5858],_mm_xor_si128(c2[6422],_mm_xor_si128(c2[2427],_mm_xor_si128(c2[2991],_mm_xor_si128(c2[8146],_mm_xor_si128(c2[4713],_mm_xor_si128(c2[8710],_mm_xor_si128(c2[5884],_mm_xor_si128(c2[6448],_mm_xor_si128(c2[8740],_mm_xor_si128(c2[5307],_mm_xor_si128(c2[166],_mm_xor_si128(c2[6459],_mm_xor_si128(c2[3026],_mm_xor_si128(c2[7023],_mm_xor_si128(c2[5910],_mm_xor_si128(c2[6474],_mm_xor_si128(c2[5913],_mm_xor_si128(c2[2480],_mm_xor_si128(c2[6477],_mm_xor_si128(c2[8771],_mm_xor_si128(c2[5338],_mm_xor_si128(c2[184],_mm_xor_si128(c2[5936],_mm_xor_si128(c2[6500],_mm_xor_si128(c2[219],_mm_xor_si128(c2[5937],_mm_xor_si128(c2[783],_mm_xor_si128(c2[217],_mm_xor_si128(c2[5935],_mm_xor_si128(c2[781],_mm_xor_si128(c2[5962],_mm_xor_si128(c2[6526],_mm_xor_si128(c2[7106],_mm_xor_si128(c2[7670],_mm_xor_si128(c2[2525],_mm_xor_si128(c2[8243],_mm_xor_si128(c2[3102],_mm_xor_si128(c2[5988],_mm_xor_si128(c2[6552],_mm_xor_si128(c2[7703],_mm_xor_si128(c2[4270],_mm_xor_si128(c2[8280],_mm_xor_si128(c2[837],_mm_xor_si128(c2[6555],_mm_xor_si128(c2[1414],_mm_xor_si128(c2[6014],_mm_xor_si128(c2[6578],_mm_xor_si128(c2[6015],_mm_xor_si128(c2[6579],_mm_xor_si128(c2[7722],_mm_xor_si128(c2[4302],_mm_xor_si128(c2[8299],_mm_xor_si128(c2[6040],_mm_xor_si128(c2[6604],_mm_xor_si128(c2[3756],_mm_xor_si128(c2[4320],_mm_xor_si128(c2[2605],_mm_xor_si128(c2[8323],_mm_xor_si128(c2[3182],_mm_xor_si128(c2[7756],_mm_xor_si128(c2[6066],_mm_xor_si128(c2[6630],_mm_xor_si128(c2[3203],_mm_xor_si128(c2[8921],_mm_xor_si128(c2[3780],_mm_xor_si128(c2[911],_mm_xor_si128(c2[6642],_mm_xor_si128(c2[1488],_mm_xor_si128(c2[6092],_mm_xor_si128(c2[6656],_mm_xor_si128(c2[3806],_mm_xor_si128(c2[373],_mm_xor_si128(c2[4370],_mm_xor_si128(c2[8952],_mm_xor_si128(c2[5519],_mm_xor_si128(c2[365],_mm_xor_si128(c2[6118],_mm_xor_si128(c2[6682],_mm_xor_si128(c2[399],_mm_xor_si128(c2[963],_mm_xor_si128(c2[8970],_mm_xor_si128(c2[5550],_mm_xor_si128(c2[396],_mm_xor_si128(c2[6144],_mm_xor_si128(c2[6708],_mm_xor_si128(c2[5002],_mm_xor_si128(c2[5566],_mm_xor_si128(c2[3849],_mm_xor_si128(c2[416],_mm_xor_si128(c2[4426],_mm_xor_si128(c2[422],_mm_xor_si128(c2[6170],_mm_xor_si128(c2[6734],_mm_xor_si128(c2[5601],_mm_xor_si128(c2[2168],_mm_xor_si128(c2[6165],_mm_xor_si128(c2[4452],_mm_xor_si128(c2[1019],_mm_xor_si128(c2[5029],_mm_xor_si128(c2[6196],_mm_xor_si128(c2[6760],_mm_xor_si128(c2[7910],_mm_xor_si128(c2[4477],_mm_xor_si128(c2[8487],_mm_xor_si128(c2[1615],_mm_xor_si128(c2[7333],_mm_xor_si128(c2[2192],_mm_xor_si128(c2[6222],_mm_xor_si128(c2[6786],_mm_xor_si128(c2[1644],_mm_xor_si128(c2[2221],_mm_xor_si128(c2[2793],_mm_xor_si128(c2[8511],_mm_xor_si128(c2[3357],_mm_xor_si128(c2[2216],_mm_xor_si128(c2[6248],_mm_xor_si128(c2[6812],_mm_xor_si128(c2[7396],_mm_xor_si128(c2[3963],_mm_xor_si128(c2[7960],_mm_xor_si128(c2[7392],_mm_xor_si128(c2[3959],_mm_xor_si128(c2[7956],_mm_xor_si128(c2[6274],_mm_xor_si128(c2[6838],_mm_xor_si128(c2[5704],_mm_xor_si128(c2[6268],_mm_xor_si128(c2[5126],_mm_xor_si128(c2[1693],_mm_xor_si128(c2[5703],c2[3412]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 9
d2[117]=_mm_xor_si128(c2[3432],_mm_xor_si128(c2[5746],_mm_xor_si128(c2[841],_mm_xor_si128(c2[3149],_mm_xor_si128(c2[5498],_mm_xor_si128(c2[2730],_mm_xor_si128(c2[2766],c2[7966])))))));
//row: 10
d2[130]=_mm_xor_si128(c2[8041],_mm_xor_si128(c2[7492],_mm_xor_si128(c2[6977],_mm_xor_si128(c2[183],_mm_xor_si128(c2[7072],c2[3800])))));
//row: 11
d2[143]=_mm_xor_si128(c2[2288],_mm_xor_si128(c2[6871],_mm_xor_si128(c2[1717],_mm_xor_si128(c2[5721],_mm_xor_si128(c2[5150],_mm_xor_si128(c2[4584],_mm_xor_si128(c2[4013],_mm_xor_si128(c2[4576],_mm_xor_si128(c2[4005],_mm_xor_si128(c2[4587],_mm_xor_si128(c2[2314],_mm_xor_si128(c2[6897],_mm_xor_si128(c2[1743],_mm_xor_si128(c2[5176],_mm_xor_si128(c2[4605],_mm_xor_si128(c2[5746],_mm_xor_si128(c2[5175],_mm_xor_si128(c2[1182],_mm_xor_si128(c2[2340],_mm_xor_si128(c2[6923],_mm_xor_si128(c2[1769],_mm_xor_si128(c2[8632],_mm_xor_si128(c2[8061],_mm_xor_si128(c2[5201],_mm_xor_si128(c2[4630],_mm_xor_si128(c2[2366],_mm_xor_si128(c2[6949],_mm_xor_si128(c2[1795],_mm_xor_si128(c2[86],_mm_xor_si128(c2[8666],_mm_xor_si128(c2[2940],_mm_xor_si128(c2[2369],_mm_xor_si128(c2[2392],_mm_xor_si128(c2[1821],_mm_xor_si128(c2[4691],_mm_xor_si128(c2[4120],_mm_xor_si128(c2[2971],_mm_xor_si128(c2[2400],_mm_xor_si128(c2[2418],_mm_xor_si128(c2[7001],_mm_xor_si128(c2[1847],_mm_xor_si128(c2[8138],_mm_xor_si128(c2[7567],_mm_xor_si128(c2[4706],_mm_xor_si128(c2[4135],_mm_xor_si128(c2[2444],_mm_xor_si128(c2[7027],_mm_xor_si128(c2[1873],_mm_xor_si128(c2[5313],_mm_xor_si128(c2[4742],_mm_xor_si128(c2[3019],_mm_xor_si128(c2[2448],_mm_xor_si128(c2[2470],_mm_xor_si128(c2[1899],_mm_xor_si128(c2[2473],_mm_xor_si128(c2[1902],_mm_xor_si128(c2[5331],_mm_xor_si128(c2[4760],_mm_xor_si128(c2[2496],_mm_xor_si128(c2[1925],_mm_xor_si128(c2[5930],_mm_xor_si128(c2[5359],_mm_xor_si128(c2[5928],_mm_xor_si128(c2[5357],_mm_xor_si128(c2[2522],_mm_xor_si128(c2[7105],_mm_xor_si128(c2[1951],_mm_xor_si128(c2[3666],_mm_xor_si128(c2[3095],_mm_xor_si128(c2[8249],_mm_xor_si128(c2[7678],_mm_xor_si128(c2[2548],_mm_xor_si128(c2[7131],_mm_xor_si128(c2[1977],_mm_xor_si128(c2[4276],_mm_xor_si128(c2[3692],_mm_xor_si128(c2[6561],_mm_xor_si128(c2[5990],_mm_xor_si128(c2[2574],_mm_xor_si128(c2[7157],_mm_xor_si128(c2[2003],_mm_xor_si128(c2[2575],_mm_xor_si128(c2[2004],_mm_xor_si128(c2[4295],_mm_xor_si128(c2[3724],_mm_xor_si128(c2[2600],_mm_xor_si128(c2[7183],_mm_xor_si128(c2[2029],_mm_xor_si128(c2[316],_mm_xor_si128(c2[8896],_mm_xor_si128(c2[8329],_mm_xor_si128(c2[7758],_mm_xor_si128(c2[6611],_mm_xor_si128(c2[2626],_mm_xor_si128(c2[7209],_mm_xor_si128(c2[2055],_mm_xor_si128(c2[8927],_mm_xor_si128(c2[8356],_mm_xor_si128(c2[6635],_mm_xor_si128(c2[6064],_mm_xor_si128(c2[2652],_mm_xor_si128(c2[2081],_mm_xor_si128(c2[366],_mm_xor_si128(c2[8946],_mm_xor_si128(c2[5512],_mm_xor_si128(c2[4941],_mm_xor_si128(c2[2678],_mm_xor_si128(c2[7261],_mm_xor_si128(c2[2107],_mm_xor_si128(c2[6110],_mm_xor_si128(c2[5539],_mm_xor_si128(c2[5543],_mm_xor_si128(c2[4972],_mm_xor_si128(c2[2704],_mm_xor_si128(c2[7287],_mm_xor_si128(c2[2133],_mm_xor_si128(c2[1562],_mm_xor_si128(c2[991],_mm_xor_si128(c2[422],_mm_xor_si128(c2[9002],_mm_xor_si128(c2[417],_mm_xor_si128(c2[2730],_mm_xor_si128(c2[2159],_mm_xor_si128(c2[2161],_mm_xor_si128(c2[1590],_mm_xor_si128(c2[1025],_mm_xor_si128(c2[454],_mm_xor_si128(c2[2756],_mm_xor_si128(c2[7339],_mm_xor_si128(c2[2185],_mm_xor_si128(c2[4483],_mm_xor_si128(c2[3912],_mm_xor_si128(c2[7339],_mm_xor_si128(c2[6768],_mm_xor_si128(c2[2782],_mm_xor_si128(c2[7365],_mm_xor_si128(c2[2211],_mm_xor_si128(c2[7368],_mm_xor_si128(c2[6797],_mm_xor_si128(c2[8504],_mm_xor_si128(c2[7933],_mm_xor_si128(c2[2808],_mm_xor_si128(c2[7391],_mm_xor_si128(c2[2237],_mm_xor_si128(c2[3956],_mm_xor_si128(c2[3385],_mm_xor_si128(c2[3952],_mm_xor_si128(c2[3381],_mm_xor_si128(c2[2834],_mm_xor_si128(c2[7417],_mm_xor_si128(c2[2263],_mm_xor_si128(c2[2264],_mm_xor_si128(c2[1693],_mm_xor_si128(c2[1699],_mm_xor_si128(c2[1128],c2[5128])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 12
d2[156]=_mm_xor_si128(c2[3432],_mm_xor_si128(c2[2315],_mm_xor_si128(c2[6564],_mm_xor_si128(c2[5443],_mm_xor_si128(c2[4920],c2[9060])))));
//row: 13
d2[169]=_mm_xor_si128(c2[8010],_mm_xor_si128(c2[2869],_mm_xor_si128(c2[6302],_mm_xor_si128(c2[5152],_mm_xor_si128(c2[5157],_mm_xor_si128(c2[2291],_mm_xor_si128(c2[8036],_mm_xor_si128(c2[2895],_mm_xor_si128(c2[5757],_mm_xor_si128(c2[6327],_mm_xor_si128(c2[8062],_mm_xor_si128(c2[2921],_mm_xor_si128(c2[62],_mm_xor_si128(c2[5782],_mm_xor_si128(c2[8088],_mm_xor_si128(c2[2947],_mm_xor_si128(c2[654],_mm_xor_si128(c2[3521],_mm_xor_si128(c2[1803],_mm_xor_si128(c2[2973],_mm_xor_si128(c2[5259],_mm_xor_si128(c2[3539],_mm_xor_si128(c2[8140],_mm_xor_si128(c2[2999],_mm_xor_si128(c2[8719],_mm_xor_si128(c2[5287],_mm_xor_si128(c2[8166],_mm_xor_si128(c2[3025],_mm_xor_si128(c2[5881],_mm_xor_si128(c2[3600],_mm_xor_si128(c2[3051],_mm_xor_si128(c2[3054],_mm_xor_si128(c2[5912],_mm_xor_si128(c2[754],_mm_xor_si128(c2[3077],_mm_xor_si128(c2[6511],_mm_xor_si128(c2[6509],_mm_xor_si128(c2[8244],_mm_xor_si128(c2[3103],_mm_xor_si128(c2[4247],_mm_xor_si128(c2[8817],_mm_xor_si128(c2[8270],_mm_xor_si128(c2[3129],_mm_xor_si128(c2[4844],_mm_xor_si128(c2[7129],_mm_xor_si128(c2[8296],_mm_xor_si128(c2[3155],_mm_xor_si128(c2[3156],_mm_xor_si128(c2[4863],_mm_xor_si128(c2[8322],_mm_xor_si128(c2[3181],_mm_xor_si128(c2[884],_mm_xor_si128(c2[8897],_mm_xor_si128(c2[8348],_mm_xor_si128(c2[3207],_mm_xor_si128(c2[344],_mm_xor_si128(c2[7203],_mm_xor_si128(c2[3233],_mm_xor_si128(c2[947],_mm_xor_si128(c2[6093],_mm_xor_si128(c2[8400],_mm_xor_si128(c2[3259],_mm_xor_si128(c2[6691],_mm_xor_si128(c2[6111],_mm_xor_si128(c2[8426],_mm_xor_si128(c2[3285],_mm_xor_si128(c2[2143],_mm_xor_si128(c2[990],_mm_xor_si128(c2[3311],_mm_xor_si128(c2[2742],_mm_xor_si128(c2[1593],_mm_xor_si128(c2[8478],_mm_xor_si128(c2[3337],_mm_xor_si128(c2[5051],_mm_xor_si128(c2[7907],_mm_xor_si128(c2[8504],_mm_xor_si128(c2[3363],_mm_xor_si128(c2[7936],_mm_xor_si128(c2[9085],_mm_xor_si128(c2[8530],_mm_xor_si128(c2[3389],_mm_xor_si128(c2[4524],_mm_xor_si128(c2[4533],_mm_xor_si128(c2[521],_mm_xor_si128(c2[8556],_mm_xor_si128(c2[3415],_mm_xor_si128(c2[2845],c2[2267])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 14
d2[182]=_mm_xor_si128(c2[572],_mm_xor_si128(c2[6044],_mm_xor_si128(c2[3829],_mm_xor_si128(c2[1568],_mm_xor_si128(c2[1014],c2[1690])))));
//row: 15
d2[195]=_mm_xor_si128(c2[2869],_mm_xor_si128(c2[6302],_mm_xor_si128(c2[5152],_mm_xor_si128(c2[1147],_mm_xor_si128(c2[5157],_mm_xor_si128(c2[7446],_mm_xor_si128(c2[2895],_mm_xor_si128(c2[5757],_mm_xor_si128(c2[2317],_mm_xor_si128(c2[6327],_mm_xor_si128(c2[3458],_mm_xor_si128(c2[2921],_mm_xor_si128(c2[62],_mm_xor_si128(c2[5782],_mm_xor_si128(c2[2947],_mm_xor_si128(c2[654],_mm_xor_si128(c2[8662],_mm_xor_si128(c2[3521],_mm_xor_si128(c2[2973],_mm_xor_si128(c2[5259],_mm_xor_si128(c2[8693],_mm_xor_si128(c2[3539],_mm_xor_si128(c2[2999],_mm_xor_si128(c2[8719],_mm_xor_si128(c2[5287],_mm_xor_si128(c2[3025],_mm_xor_si128(c2[5881],_mm_xor_si128(c2[8741],_mm_xor_si128(c2[3600],_mm_xor_si128(c2[3051],_mm_xor_si128(c2[3054],_mm_xor_si128(c2[1902],_mm_xor_si128(c2[5912],_mm_xor_si128(c2[3077],_mm_xor_si128(c2[6511],_mm_xor_si128(c2[2499],_mm_xor_si128(c2[6509],_mm_xor_si128(c2[3103],_mm_xor_si128(c2[4247],_mm_xor_si128(c2[8817],_mm_xor_si128(c2[3129],_mm_xor_si128(c2[4844],_mm_xor_si128(c2[3132],_mm_xor_si128(c2[7129],_mm_xor_si128(c2[837],_mm_xor_si128(c2[3155],_mm_xor_si128(c2[3156],_mm_xor_si128(c2[866],_mm_xor_si128(c2[4863],_mm_xor_si128(c2[3181],_mm_xor_si128(c2[884],_mm_xor_si128(c2[4900],_mm_xor_si128(c2[8897],_mm_xor_si128(c2[3207],_mm_xor_si128(c2[344],_mm_xor_si128(c2[3206],_mm_xor_si128(c2[7203],_mm_xor_si128(c2[3781],_mm_xor_si128(c2[3233],_mm_xor_si128(c2[947],_mm_xor_si128(c2[2083],_mm_xor_si128(c2[6093],_mm_xor_si128(c2[3259],_mm_xor_si128(c2[6691],_mm_xor_si128(c2[6111],_mm_xor_si128(c2[3285],_mm_xor_si128(c2[2143],_mm_xor_si128(c2[6144],_mm_xor_si128(c2[990],_mm_xor_si128(c2[3311],_mm_xor_si128(c2[2742],_mm_xor_si128(c2[6734],_mm_xor_si128(c2[1593],_mm_xor_si128(c2[3337],_mm_xor_si128(c2[5051],_mm_xor_si128(c2[3910],_mm_xor_si128(c2[7907],_mm_xor_si128(c2[3331],_mm_xor_si128(c2[3363],_mm_xor_si128(c2[7936],_mm_xor_si128(c2[9085],_mm_xor_si128(c2[3389],_mm_xor_si128(c2[4524],_mm_xor_si128(c2[523],_mm_xor_si128(c2[4533],_mm_xor_si128(c2[3415],_mm_xor_si128(c2[2845],_mm_xor_si128(c2[7421],c2[2267]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 16
d2[208]=_mm_xor_si128(c2[7440],_mm_xor_si128(c2[1722],_mm_xor_si128(c2[572],_mm_xor_si128(c2[577],_mm_xor_si128(c2[7466],_mm_xor_si128(c2[1177],_mm_xor_si128(c2[1747],_mm_xor_si128(c2[4607],_mm_xor_si128(c2[7492],_mm_xor_si128(c2[4633],_mm_xor_si128(c2[1202],_mm_xor_si128(c2[7518],_mm_xor_si128(c2[5238],_mm_xor_si128(c2[8092],_mm_xor_si128(c2[3522],_mm_xor_si128(c2[7544],_mm_xor_si128(c2[679],_mm_xor_si128(c2[8123],_mm_xor_si128(c2[7570],_mm_xor_si128(c2[4139],_mm_xor_si128(c2[707],_mm_xor_si128(c2[7596],_mm_xor_si128(c2[1301],_mm_xor_si128(c2[8171],_mm_xor_si128(c2[7622],_mm_xor_si128(c2[7625],_mm_xor_si128(c2[1332],_mm_xor_si128(c2[7648],_mm_xor_si128(c2[1931],_mm_xor_si128(c2[1929],_mm_xor_si128(c2[7674],_mm_xor_si128(c2[8818],_mm_xor_si128(c2[4250],_mm_xor_si128(c2[7700],_mm_xor_si128(c2[264],_mm_xor_si128(c2[2549],_mm_xor_si128(c2[7726],_mm_xor_si128(c2[7727],_mm_xor_si128(c2[296],_mm_xor_si128(c2[296],_mm_xor_si128(c2[7752],_mm_xor_si128(c2[5468],_mm_xor_si128(c2[4317],_mm_xor_si128(c2[7778],_mm_xor_si128(c2[4915],_mm_xor_si128(c2[2636],_mm_xor_si128(c2[7804],_mm_xor_si128(c2[5518],_mm_xor_si128(c2[1513],_mm_xor_si128(c2[7830],_mm_xor_si128(c2[2111],_mm_xor_si128(c2[1544],_mm_xor_si128(c2[7856],_mm_xor_si128(c2[6714],_mm_xor_si128(c2[5574],_mm_xor_si128(c2[7882],_mm_xor_si128(c2[7313],_mm_xor_si128(c2[6164],_mm_xor_si128(c2[7908],_mm_xor_si128(c2[471],_mm_xor_si128(c2[3340],_mm_xor_si128(c2[7934],_mm_xor_si128(c2[3356],_mm_xor_si128(c2[4505],_mm_xor_si128(c2[7960],_mm_xor_si128(c2[9108],_mm_xor_si128(c2[9104],_mm_xor_si128(c2[6247],_mm_xor_si128(c2[7986],_mm_xor_si128(c2[7416],c2[6838]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 17
d2[221]=_mm_xor_si128(c2[6297],_mm_xor_si128(c2[4951],_mm_xor_si128(c2[8425],_mm_xor_si128(c2[2158],c2[6847]))));
//row: 18
d2[234]=_mm_xor_si128(c2[598],_mm_xor_si128(c2[5462],_mm_xor_si128(c2[4352],_mm_xor_si128(c2[2760],c2[2791]))));
//row: 19
d2[247]=_mm_xor_si128(c2[6864],_mm_xor_si128(c2[3458],_mm_xor_si128(c2[3624],_mm_xor_si128(c2[4795],c2[8851]))));
//row: 20
d2[260]=_mm_xor_si128(c2[2868],_mm_xor_si128(c2[6301],_mm_xor_si128(c2[5151],_mm_xor_si128(c2[5156],_mm_xor_si128(c2[3432],_mm_xor_si128(c2[2894],_mm_xor_si128(c2[5756],_mm_xor_si128(c2[6326],_mm_xor_si128(c2[2920],_mm_xor_si128(c2[61],_mm_xor_si128(c2[5781],_mm_xor_si128(c2[2946],_mm_xor_si128(c2[653],_mm_xor_si128(c2[3520],_mm_xor_si128(c2[6942],_mm_xor_si128(c2[2972],_mm_xor_si128(c2[5258],_mm_xor_si128(c2[3538],_mm_xor_si128(c2[2998],_mm_xor_si128(c2[8718],_mm_xor_si128(c2[5286],_mm_xor_si128(c2[3024],_mm_xor_si128(c2[5880],_mm_xor_si128(c2[3599],_mm_xor_si128(c2[3050],_mm_xor_si128(c2[3053],_mm_xor_si128(c2[5911],_mm_xor_si128(c2[3076],_mm_xor_si128(c2[6510],_mm_xor_si128(c2[6508],_mm_xor_si128(c2[3102],_mm_xor_si128(c2[4246],_mm_xor_si128(c2[8816],_mm_xor_si128(c2[8814],_mm_xor_si128(c2[3128],_mm_xor_si128(c2[4843],_mm_xor_si128(c2[7128],_mm_xor_si128(c2[3154],_mm_xor_si128(c2[3155],_mm_xor_si128(c2[4862],_mm_xor_si128(c2[3146],_mm_xor_si128(c2[3180],_mm_xor_si128(c2[896],_mm_xor_si128(c2[8896],_mm_xor_si128(c2[3206],_mm_xor_si128(c2[343],_mm_xor_si128(c2[7202],_mm_xor_si128(c2[3232],_mm_xor_si128(c2[946],_mm_xor_si128(c2[6092],_mm_xor_si128(c2[3258],_mm_xor_si128(c2[6690],_mm_xor_si128(c2[6110],_mm_xor_si128(c2[3284],_mm_xor_si128(c2[2142],_mm_xor_si128(c2[989],_mm_xor_si128(c2[3310],_mm_xor_si128(c2[2741],_mm_xor_si128(c2[1592],_mm_xor_si128(c2[3336],_mm_xor_si128(c2[5050],_mm_xor_si128(c2[7906],_mm_xor_si128(c2[3362],_mm_xor_si128(c2[7935],_mm_xor_si128(c2[9084],_mm_xor_si128(c2[3388],_mm_xor_si128(c2[4536],_mm_xor_si128(c2[4532],_mm_xor_si128(c2[3414],_mm_xor_si128(c2[2844],c2[2266]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 21
d2[273]=_mm_xor_si128(c2[3458],_mm_xor_si128(c2[3567],_mm_xor_si128(c2[422],_mm_xor_si128(c2[6242],c2[4562]))));
//row: 22
d2[286]=_mm_xor_si128(c2[6866],_mm_xor_si128(c2[6035],_mm_xor_si128(c2[1490],c2[2166])));
//row: 23
d2[299]=_mm_xor_si128(c2[7464],_mm_xor_si128(c2[1197],_mm_xor_si128(c2[2556],c2[2762])));
//row: 24
d2[312]=_mm_xor_si128(c2[7442],_mm_xor_si128(c2[1724],_mm_xor_si128(c2[574],_mm_xor_si128(c2[579],_mm_xor_si128(c2[5148],_mm_xor_si128(c2[7468],_mm_xor_si128(c2[1179],_mm_xor_si128(c2[1749],_mm_xor_si128(c2[7494],_mm_xor_si128(c2[4635],_mm_xor_si128(c2[1204],_mm_xor_si128(c2[7520],_mm_xor_si128(c2[5227],_mm_xor_si128(c2[8094],_mm_xor_si128(c2[7521],_mm_xor_si128(c2[7546],_mm_xor_si128(c2[681],_mm_xor_si128(c2[8112],_mm_xor_si128(c2[8695],_mm_xor_si128(c2[7572],_mm_xor_si128(c2[4141],_mm_xor_si128(c2[709],_mm_xor_si128(c2[7598],_mm_xor_si128(c2[1303],_mm_xor_si128(c2[8173],_mm_xor_si128(c2[7624],_mm_xor_si128(c2[7627],_mm_xor_si128(c2[1334],_mm_xor_si128(c2[7650],_mm_xor_si128(c2[1933],_mm_xor_si128(c2[1931],_mm_xor_si128(c2[7676],_mm_xor_si128(c2[8820],_mm_xor_si128(c2[4239],_mm_xor_si128(c2[7702],_mm_xor_si128(c2[266],_mm_xor_si128(c2[2551],_mm_xor_si128(c2[7728],_mm_xor_si128(c2[7729],_mm_xor_si128(c2[298],_mm_xor_si128(c2[7151],_mm_xor_si128(c2[7754],_mm_xor_si128(c2[5470],_mm_xor_si128(c2[4319],_mm_xor_si128(c2[7780],_mm_xor_si128(c2[4917],_mm_xor_si128(c2[2638],_mm_xor_si128(c2[7806],_mm_xor_si128(c2[5520],_mm_xor_si128(c2[1515],_mm_xor_si128(c2[7832],_mm_xor_si128(c2[2113],_mm_xor_si128(c2[1546],_mm_xor_si128(c2[7858],_mm_xor_si128(c2[6716],_mm_xor_si128(c2[5576],_mm_xor_si128(c2[7884],_mm_xor_si128(c2[7315],_mm_xor_si128(c2[6166],_mm_xor_si128(c2[7910],_mm_xor_si128(c2[473],_mm_xor_si128(c2[3329],_mm_xor_si128(c2[7936],_mm_xor_si128(c2[3358],_mm_xor_si128(c2[4507],_mm_xor_si128(c2[7962],_mm_xor_si128(c2[9110],_mm_xor_si128(c2[9106],_mm_xor_si128(c2[7988],_mm_xor_si128(c2[7418],c2[6840]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 25
d2[325]=_mm_xor_si128(c2[2314],_mm_xor_si128(c2[5880],_mm_xor_si128(c2[183],c2[7229])));
//row: 26
d2[338]=_mm_xor_si128(c2[2861],_mm_xor_si128(c2[8068],_mm_xor_si128(c2[116],c2[3262])));
//row: 27
d2[351]=_mm_xor_si128(c2[1176],_mm_xor_si128(c2[7028],c2[3641]));
//row: 28
d2[364]=_mm_xor_si128(c2[2288],_mm_xor_si128(c2[676],_mm_xor_si128(c2[5072],c2[7987])));
//row: 29
d2[377]=_mm_xor_si128(c2[7442],_mm_xor_si128(c2[1724],_mm_xor_si128(c2[574],_mm_xor_si128(c2[5720],_mm_xor_si128(c2[579],_mm_xor_si128(c2[7468],_mm_xor_si128(c2[1179],_mm_xor_si128(c2[6890],_mm_xor_si128(c2[1749],_mm_xor_si128(c2[6895],_mm_xor_si128(c2[7494],_mm_xor_si128(c2[4635],_mm_xor_si128(c2[1204],_mm_xor_si128(c2[7520],_mm_xor_si128(c2[5227],_mm_xor_si128(c2[4084],_mm_xor_si128(c2[8094],_mm_xor_si128(c2[7546],_mm_xor_si128(c2[681],_mm_xor_si128(c2[4115],_mm_xor_si128(c2[8112],_mm_xor_si128(c2[7572],_mm_xor_si128(c2[4141],_mm_xor_si128(c2[709],_mm_xor_si128(c2[7598],_mm_xor_si128(c2[1303],_mm_xor_si128(c2[4163],_mm_xor_si128(c2[8173],_mm_xor_si128(c2[7624],_mm_xor_si128(c2[7627],_mm_xor_si128(c2[6475],_mm_xor_si128(c2[1334],_mm_xor_si128(c2[7650],_mm_xor_si128(c2[1933],_mm_xor_si128(c2[7072],_mm_xor_si128(c2[1931],_mm_xor_si128(c2[7676],_mm_xor_si128(c2[8820],_mm_xor_si128(c2[4239],_mm_xor_si128(c2[7702],_mm_xor_si128(c2[266],_mm_xor_si128(c2[7705],_mm_xor_si128(c2[2551],_mm_xor_si128(c2[7728],_mm_xor_si128(c2[7729],_mm_xor_si128(c2[5439],_mm_xor_si128(c2[298],_mm_xor_si128(c2[7754],_mm_xor_si128(c2[5470],_mm_xor_si128(c2[322],_mm_xor_si128(c2[4319],_mm_xor_si128(c2[7780],_mm_xor_si128(c2[4917],_mm_xor_si128(c2[7779],_mm_xor_si128(c2[2638],_mm_xor_si128(c2[7806],_mm_xor_si128(c2[5520],_mm_xor_si128(c2[6656],_mm_xor_si128(c2[1515],_mm_xor_si128(c2[4948],_mm_xor_si128(c2[7832],_mm_xor_si128(c2[2113],_mm_xor_si128(c2[1546],_mm_xor_si128(c2[7858],_mm_xor_si128(c2[6716],_mm_xor_si128(c2[1566],_mm_xor_si128(c2[5576],_mm_xor_si128(c2[7884],_mm_xor_si128(c2[7315],_mm_xor_si128(c2[2169],_mm_xor_si128(c2[6166],_mm_xor_si128(c2[7910],_mm_xor_si128(c2[473],_mm_xor_si128(c2[8483],_mm_xor_si128(c2[3329],_mm_xor_si128(c2[6194],_mm_xor_si128(c2[7936],_mm_xor_si128(c2[3358],_mm_xor_si128(c2[4507],_mm_xor_si128(c2[7962],_mm_xor_si128(c2[9110],_mm_xor_si128(c2[5096],_mm_xor_si128(c2[9106],_mm_xor_si128(c2[7988],_mm_xor_si128(c2[7418],_mm_xor_si128(c2[2843],c2[6840]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 30
d2[390]=_mm_xor_si128(c2[6299],_mm_xor_si128(c2[581],_mm_xor_si128(c2[4585],_mm_xor_si128(c2[8582],_mm_xor_si128(c2[4577],_mm_xor_si128(c2[8587],_mm_xor_si128(c2[1144],_mm_xor_si128(c2[6325],_mm_xor_si128(c2[5177],_mm_xor_si128(c2[36],_mm_xor_si128(c2[5747],_mm_xor_si128(c2[606],_mm_xor_si128(c2[6351],_mm_xor_si128(c2[3492],_mm_xor_si128(c2[5202],_mm_xor_si128(c2[61],_mm_xor_si128(c2[6377],_mm_xor_si128(c2[4084],_mm_xor_si128(c2[2941],_mm_xor_si128(c2[6951],_mm_xor_si128(c2[6403],_mm_xor_si128(c2[4692],_mm_xor_si128(c2[8689],_mm_xor_si128(c2[2972],_mm_xor_si128(c2[6969],_mm_xor_si128(c2[6429],_mm_xor_si128(c2[2998],_mm_xor_si128(c2[4707],_mm_xor_si128(c2[8717],_mm_xor_si128(c2[6455],_mm_xor_si128(c2[5314],_mm_xor_si128(c2[160],_mm_xor_si128(c2[3020],_mm_xor_si128(c2[7030],_mm_xor_si128(c2[6481],_mm_xor_si128(c2[2474],_mm_xor_si128(c2[6484],_mm_xor_si128(c2[5332],_mm_xor_si128(c2[191],_mm_xor_si128(c2[6507],_mm_xor_si128(c2[5931],_mm_xor_si128(c2[790],_mm_xor_si128(c2[5929],_mm_xor_si128(c2[788],_mm_xor_si128(c2[6533],_mm_xor_si128(c2[7677],_mm_xor_si128(c2[8250],_mm_xor_si128(c2[3096],_mm_xor_si128(c2[6559],_mm_xor_si128(c2[4264],_mm_xor_si128(c2[8274],_mm_xor_si128(c2[6562],_mm_xor_si128(c2[1408],_mm_xor_si128(c2[4841],_mm_xor_si128(c2[6585],_mm_xor_si128(c2[6586],_mm_xor_si128(c2[4296],_mm_xor_si128(c2[8306],_mm_xor_si128(c2[6611],_mm_xor_si128(c2[4327],_mm_xor_si128(c2[8330],_mm_xor_si128(c2[3176],_mm_xor_si128(c2[6637],_mm_xor_si128(c2[8928],_mm_xor_si128(c2[3774],_mm_xor_si128(c2[6636],_mm_xor_si128(c2[1482],_mm_xor_si128(c2[345],_mm_xor_si128(c2[6663],_mm_xor_si128(c2[367],_mm_xor_si128(c2[4377],_mm_xor_si128(c2[5513],_mm_xor_si128(c2[372],_mm_xor_si128(c2[6689],_mm_xor_si128(c2[970],_mm_xor_si128(c2[5544],_mm_xor_si128(c2[390],_mm_xor_si128(c2[6715],_mm_xor_si128(c2[5573],_mm_xor_si128(c2[423],_mm_xor_si128(c2[4420],_mm_xor_si128(c2[6741],_mm_xor_si128(c2[2162],_mm_xor_si128(c2[6172],_mm_xor_si128(c2[1026],_mm_xor_si128(c2[5023],_mm_xor_si128(c2[6767],_mm_xor_si128(c2[4484],_mm_xor_si128(c2[8481],_mm_xor_si128(c2[7340],_mm_xor_si128(c2[2186],_mm_xor_si128(c2[6793],_mm_xor_si128(c2[2215],_mm_xor_si128(c2[8505],_mm_xor_si128(c2[3364],_mm_xor_si128(c2[6819],_mm_xor_si128(c2[3957],_mm_xor_si128(c2[7967],_mm_xor_si128(c2[3953],_mm_xor_si128(c2[7963],_mm_xor_si128(c2[6845],_mm_xor_si128(c2[6275],_mm_xor_si128(c2[1700],c2[5697])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 31
d2[403]=_mm_xor_si128(c2[2289],_mm_xor_si128(c2[5153],_mm_xor_si128(c2[5722],_mm_xor_si128(c2[8586],_mm_xor_si128(c2[4585],_mm_xor_si128(c2[7436],_mm_xor_si128(c2[4577],_mm_xor_si128(c2[3444],_mm_xor_si128(c2[7441],_mm_xor_si128(c2[2315],_mm_xor_si128(c2[5179],_mm_xor_si128(c2[5177],_mm_xor_si128(c2[8041],_mm_xor_si128(c2[5747],_mm_xor_si128(c2[4614],_mm_xor_si128(c2[8611],_mm_xor_si128(c2[2314],_mm_xor_si128(c2[2341],_mm_xor_si128(c2[5205],_mm_xor_si128(c2[8633],_mm_xor_si128(c2[2346],_mm_xor_si128(c2[5202],_mm_xor_si128(c2[8066],_mm_xor_si128(c2[2367],_mm_xor_si128(c2[5231],_mm_xor_si128(c2[87],_mm_xor_si128(c2[2938],_mm_xor_si128(c2[2941],_mm_xor_si128(c2[1795],_mm_xor_si128(c2[5805],_mm_xor_si128(c2[2393],_mm_xor_si128(c2[5257],_mm_xor_si128(c2[4692],_mm_xor_si128(c2[7543],_mm_xor_si128(c2[2972],_mm_xor_si128(c2[1826],_mm_xor_si128(c2[5836],_mm_xor_si128(c2[2419],_mm_xor_si128(c2[5283],_mm_xor_si128(c2[8139],_mm_xor_si128(c2[1852],_mm_xor_si128(c2[4707],_mm_xor_si128(c2[7571],_mm_xor_si128(c2[2445],_mm_xor_si128(c2[5309],_mm_xor_si128(c2[5314],_mm_xor_si128(c2[8165],_mm_xor_si128(c2[3020],_mm_xor_si128(c2[1874],_mm_xor_si128(c2[5884],_mm_xor_si128(c2[2471],_mm_xor_si128(c2[5335],_mm_xor_si128(c2[2474],_mm_xor_si128(c2[5338],_mm_xor_si128(c2[5332],_mm_xor_si128(c2[4186],_mm_xor_si128(c2[8196],_mm_xor_si128(c2[757],_mm_xor_si128(c2[2497],_mm_xor_si128(c2[5361],_mm_xor_si128(c2[5931],_mm_xor_si128(c2[8795],_mm_xor_si128(c2[5929],_mm_xor_si128(c2[4796],_mm_xor_si128(c2[8793],_mm_xor_si128(c2[2523],_mm_xor_si128(c2[5387],_mm_xor_si128(c2[3667],_mm_xor_si128(c2[6531],_mm_xor_si128(c2[8250],_mm_xor_si128(c2[1950],_mm_xor_si128(c2[2549],_mm_xor_si128(c2[5413],_mm_xor_si128(c2[4264],_mm_xor_si128(c2[7128],_mm_xor_si128(c2[6562],_mm_xor_si128(c2[5416],_mm_xor_si128(c2[262],_mm_xor_si128(c2[2575],_mm_xor_si128(c2[5439],_mm_xor_si128(c2[2576],_mm_xor_si128(c2[5440],_mm_xor_si128(c2[4296],_mm_xor_si128(c2[3150],_mm_xor_si128(c2[7160],_mm_xor_si128(c2[2601],_mm_xor_si128(c2[5465],_mm_xor_si128(c2[317],_mm_xor_si128(c2[3181],_mm_xor_si128(c2[8330],_mm_xor_si128(c2[7184],_mm_xor_si128(c2[2030],_mm_xor_si128(c2[2627],_mm_xor_si128(c2[5491],_mm_xor_si128(c2[8928],_mm_xor_si128(c2[2628],_mm_xor_si128(c2[6636],_mm_xor_si128(c2[5490],_mm_xor_si128(c2[349],_mm_xor_si128(c2[2653],_mm_xor_si128(c2[5517],_mm_xor_si128(c2[367],_mm_xor_si128(c2[3231],_mm_xor_si128(c2[5513],_mm_xor_si128(c2[4380],_mm_xor_si128(c2[8377],_mm_xor_si128(c2[2679],_mm_xor_si128(c2[5543],_mm_xor_si128(c2[6111],_mm_xor_si128(c2[8975],_mm_xor_si128(c2[5544],_mm_xor_si128(c2[8408],_mm_xor_si128(c2[2705],_mm_xor_si128(c2[5569],_mm_xor_si128(c2[1563],_mm_xor_si128(c2[4427],_mm_xor_si128(c2[423],_mm_xor_si128(c2[8428],_mm_xor_si128(c2[3287],_mm_xor_si128(c2[2731],_mm_xor_si128(c2[5595],_mm_xor_si128(c2[2162],_mm_xor_si128(c2[5026],_mm_xor_si128(c2[1026],_mm_xor_si128(c2[9031],_mm_xor_si128(c2[3877],_mm_xor_si128(c2[2757],_mm_xor_si128(c2[5621],_mm_xor_si128(c2[4484],_mm_xor_si128(c2[7335],_mm_xor_si128(c2[7340],_mm_xor_si128(c2[6194],_mm_xor_si128(c2[1040],_mm_xor_si128(c2[2783],_mm_xor_si128(c2[5647],_mm_xor_si128(c2[7369],_mm_xor_si128(c2[1069],_mm_xor_si128(c2[8505],_mm_xor_si128(c2[2218],_mm_xor_si128(c2[2809],_mm_xor_si128(c2[5673],_mm_xor_si128(c2[3957],_mm_xor_si128(c2[6821],_mm_xor_si128(c2[3953],_mm_xor_si128(c2[2820],_mm_xor_si128(c2[6817],_mm_xor_si128(c2[2835],_mm_xor_si128(c2[5699],_mm_xor_si128(c2[2265],_mm_xor_si128(c2[5129],_mm_xor_si128(c2[1700],_mm_xor_si128(c2[554],c2[4551]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 32
d2[416]=_mm_xor_si128(c2[6299],_mm_xor_si128(c2[581],_mm_xor_si128(c2[4585],_mm_xor_si128(c2[8582],_mm_xor_si128(c2[4577],_mm_xor_si128(c2[8587],_mm_xor_si128(c2[3432],_mm_xor_si128(c2[6325],_mm_xor_si128(c2[5177],_mm_xor_si128(c2[36],_mm_xor_si128(c2[5747],_mm_xor_si128(c2[606],_mm_xor_si128(c2[6351],_mm_xor_si128(c2[3492],_mm_xor_si128(c2[5202],_mm_xor_si128(c2[61],_mm_xor_si128(c2[6377],_mm_xor_si128(c2[4084],_mm_xor_si128(c2[2941],_mm_xor_si128(c2[6951],_mm_xor_si128(c2[6403],_mm_xor_si128(c2[4692],_mm_xor_si128(c2[8689],_mm_xor_si128(c2[2972],_mm_xor_si128(c2[6969],_mm_xor_si128(c2[6429],_mm_xor_si128(c2[2998],_mm_xor_si128(c2[4707],_mm_xor_si128(c2[8717],_mm_xor_si128(c2[6455],_mm_xor_si128(c2[5314],_mm_xor_si128(c2[160],_mm_xor_si128(c2[3020],_mm_xor_si128(c2[7030],_mm_xor_si128(c2[6481],_mm_xor_si128(c2[2474],_mm_xor_si128(c2[6484],_mm_xor_si128(c2[5332],_mm_xor_si128(c2[191],_mm_xor_si128(c2[6507],_mm_xor_si128(c2[5931],_mm_xor_si128(c2[790],_mm_xor_si128(c2[5929],_mm_xor_si128(c2[788],_mm_xor_si128(c2[6533],_mm_xor_si128(c2[7677],_mm_xor_si128(c2[8250],_mm_xor_si128(c2[3096],_mm_xor_si128(c2[6559],_mm_xor_si128(c2[4264],_mm_xor_si128(c2[8274],_mm_xor_si128(c2[6562],_mm_xor_si128(c2[1408],_mm_xor_si128(c2[6585],_mm_xor_si128(c2[6586],_mm_xor_si128(c2[4296],_mm_xor_si128(c2[8306],_mm_xor_si128(c2[6611],_mm_xor_si128(c2[4327],_mm_xor_si128(c2[8330],_mm_xor_si128(c2[3176],_mm_xor_si128(c2[8327],_mm_xor_si128(c2[6637],_mm_xor_si128(c2[8928],_mm_xor_si128(c2[3774],_mm_xor_si128(c2[6636],_mm_xor_si128(c2[1482],_mm_xor_si128(c2[6663],_mm_xor_si128(c2[367],_mm_xor_si128(c2[4377],_mm_xor_si128(c2[5513],_mm_xor_si128(c2[372],_mm_xor_si128(c2[8947],_mm_xor_si128(c2[6689],_mm_xor_si128(c2[970],_mm_xor_si128(c2[5544],_mm_xor_si128(c2[390],_mm_xor_si128(c2[6715],_mm_xor_si128(c2[5573],_mm_xor_si128(c2[423],_mm_xor_si128(c2[4420],_mm_xor_si128(c2[6741],_mm_xor_si128(c2[2162],_mm_xor_si128(c2[6172],_mm_xor_si128(c2[1026],_mm_xor_si128(c2[5023],_mm_xor_si128(c2[6767],_mm_xor_si128(c2[4484],_mm_xor_si128(c2[8481],_mm_xor_si128(c2[7340],_mm_xor_si128(c2[2186],_mm_xor_si128(c2[6793],_mm_xor_si128(c2[2215],_mm_xor_si128(c2[8505],_mm_xor_si128(c2[3364],_mm_xor_si128(c2[6819],_mm_xor_si128(c2[3957],_mm_xor_si128(c2[7967],_mm_xor_si128(c2[3953],_mm_xor_si128(c2[7963],_mm_xor_si128(c2[6845],_mm_xor_si128(c2[6275],_mm_xor_si128(c2[1700],c2[5697])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 33
d2[429]=_mm_xor_si128(c2[5746],_mm_xor_si128(c2[8061],_mm_xor_si128(c2[3718],c2[7415])));
//row: 34
d2[442]=_mm_xor_si128(c2[2288],_mm_xor_si128(c2[5339],_mm_xor_si128(c2[3262],c2[6743])));
//row: 35
d2[455]=_mm_xor_si128(c2[5],_mm_xor_si128(c2[3438],_mm_xor_si128(c2[2288],_mm_xor_si128(c2[2293],_mm_xor_si128(c2[31],_mm_xor_si128(c2[2893],_mm_xor_si128(c2[3463],_mm_xor_si128(c2[2314],_mm_xor_si128(c2[57],_mm_xor_si128(c2[6349],_mm_xor_si128(c2[2918],_mm_xor_si128(c2[83],_mm_xor_si128(c2[6954],_mm_xor_si128(c2[657],_mm_xor_si128(c2[109],_mm_xor_si128(c2[2395],_mm_xor_si128(c2[688],_mm_xor_si128(c2[135],_mm_xor_si128(c2[5855],_mm_xor_si128(c2[2423],_mm_xor_si128(c2[161],_mm_xor_si128(c2[3017],_mm_xor_si128(c2[736],_mm_xor_si128(c2[7594],_mm_xor_si128(c2[187],_mm_xor_si128(c2[190],_mm_xor_si128(c2[3048],_mm_xor_si128(c2[213],_mm_xor_si128(c2[3647],_mm_xor_si128(c2[3645],_mm_xor_si128(c2[239],_mm_xor_si128(c2[1383],_mm_xor_si128(c2[5966],_mm_xor_si128(c2[265],_mm_xor_si128(c2[1980],_mm_xor_si128(c2[4265],_mm_xor_si128(c2[291],_mm_xor_si128(c2[292],_mm_xor_si128(c2[2012],_mm_xor_si128(c2[317],_mm_xor_si128(c2[7184],_mm_xor_si128(c2[6033],_mm_xor_si128(c2[4898],_mm_xor_si128(c2[343],_mm_xor_si128(c2[6631],_mm_xor_si128(c2[4352],_mm_xor_si128(c2[369],_mm_xor_si128(c2[7234],_mm_xor_si128(c2[3229],_mm_xor_si128(c2[395],_mm_xor_si128(c2[3827],_mm_xor_si128(c2[3260],_mm_xor_si128(c2[421],_mm_xor_si128(c2[8430],_mm_xor_si128(c2[7290],_mm_xor_si128(c2[447],_mm_xor_si128(c2[9029],_mm_xor_si128(c2[7880],_mm_xor_si128(c2[473],_mm_xor_si128(c2[2187],_mm_xor_si128(c2[5056],_mm_xor_si128(c2[499],_mm_xor_si128(c2[5072],_mm_xor_si128(c2[6221],_mm_xor_si128(c2[525],_mm_xor_si128(c2[1673],_mm_xor_si128(c2[1669],_mm_xor_si128(c2[551],_mm_xor_si128(c2[9132],c2[8554])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 36
d2[468]=_mm_xor_si128(c2[3432],_mm_xor_si128(c2[4952],_mm_xor_si128(c2[973],c2[6762])));
//row: 37
d2[481]=_mm_xor_si128(c2[4012],_mm_xor_si128(c2[8009],_mm_xor_si128(c2[2291],_mm_xor_si128(c2[1154],_mm_xor_si128(c2[1146],_mm_xor_si128(c2[4038],_mm_xor_si128(c2[8035],_mm_xor_si128(c2[1746],_mm_xor_si128(c2[2316],_mm_xor_si128(c2[1175],_mm_xor_si128(c2[4064],_mm_xor_si128(c2[8061],_mm_xor_si128(c2[5202],_mm_xor_si128(c2[1771],_mm_xor_si128(c2[4090],_mm_xor_si128(c2[8087],_mm_xor_si128(c2[5807],_mm_xor_si128(c2[8661],_mm_xor_si128(c2[8113],_mm_xor_si128(c2[1248],_mm_xor_si128(c2[8692],_mm_xor_si128(c2[4142],_mm_xor_si128(c2[8139],_mm_xor_si128(c2[4708],_mm_xor_si128(c2[1276],_mm_xor_si128(c2[4168],_mm_xor_si128(c2[8165],_mm_xor_si128(c2[1883],_mm_xor_si128(c2[8740],_mm_xor_si128(c2[8191],_mm_xor_si128(c2[8194],_mm_xor_si128(c2[1901],_mm_xor_si128(c2[8217],_mm_xor_si128(c2[2500],_mm_xor_si128(c2[2498],_mm_xor_si128(c2[4246],_mm_xor_si128(c2[8243],_mm_xor_si128(c2[236],_mm_xor_si128(c2[4819],_mm_xor_si128(c2[4272],_mm_xor_si128(c2[8269],_mm_xor_si128(c2[833],_mm_xor_si128(c2[3131],_mm_xor_si128(c2[4298],_mm_xor_si128(c2[8295],_mm_xor_si128(c2[8296],_mm_xor_si128(c2[865],_mm_xor_si128(c2[4324],_mm_xor_si128(c2[8321],_mm_xor_si128(c2[6037],_mm_xor_si128(c2[4899],_mm_xor_si128(c2[4350],_mm_xor_si128(c2[8347],_mm_xor_si128(c2[5497],_mm_xor_si128(c2[3205],_mm_xor_si128(c2[1482],_mm_xor_si128(c2[8373],_mm_xor_si128(c2[6087],_mm_xor_si128(c2[2082],_mm_xor_si128(c2[4402],_mm_xor_si128(c2[8399],_mm_xor_si128(c2[2680],_mm_xor_si128(c2[2113],_mm_xor_si128(c2[4428],_mm_xor_si128(c2[8425],_mm_xor_si128(c2[7283],_mm_xor_si128(c2[6143],_mm_xor_si128(c2[8451],_mm_xor_si128(c2[7882],_mm_xor_si128(c2[6746],_mm_xor_si128(c2[4480],_mm_xor_si128(c2[8477],_mm_xor_si128(c2[1040],_mm_xor_si128(c2[3909],_mm_xor_si128(c2[4506],_mm_xor_si128(c2[8503],_mm_xor_si128(c2[3938],_mm_xor_si128(c2[5074],_mm_xor_si128(c2[4532],_mm_xor_si128(c2[8529],_mm_xor_si128(c2[526],_mm_xor_si128(c2[522],_mm_xor_si128(c2[4558],_mm_xor_si128(c2[8555],_mm_xor_si128(c2[7985],c2[7420])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 38
d2[494]=_mm_xor_si128(c2[6297],_mm_xor_si128(c2[238],_mm_xor_si128(c2[3704],c2[2606])));
//row: 39
d2[507]=_mm_xor_si128(c2[2314],_mm_xor_si128(c2[6943],_mm_xor_si128(c2[7624],c2[7369])));
//row: 40
d2[520]=_mm_xor_si128(c2[5720],_mm_xor_si128(c2[2501],c2[7306]));
//row: 41
d2[533]=_mm_xor_si128(c2[1170],_mm_xor_si128(c2[6374],_mm_xor_si128(c2[8250],c2[476])));
//row: 42
d2[546]=_mm_xor_si128(c2[5151],_mm_xor_si128(c2[8584],_mm_xor_si128(c2[3437],_mm_xor_si128(c2[7447],_mm_xor_si128(c2[3442],_mm_xor_si128(c2[7439],_mm_xor_si128(c2[1726],_mm_xor_si128(c2[5177],_mm_xor_si128(c2[4042],_mm_xor_si128(c2[8039],_mm_xor_si128(c2[4612],_mm_xor_si128(c2[8609],_mm_xor_si128(c2[5203],_mm_xor_si128(c2[2344],_mm_xor_si128(c2[4067],_mm_xor_si128(c2[8064],_mm_xor_si128(c2[5229],_mm_xor_si128(c2[2949],_mm_xor_si128(c2[1806],_mm_xor_si128(c2[5803],_mm_xor_si128(c2[5255],_mm_xor_si128(c2[3544],_mm_xor_si128(c2[7541],_mm_xor_si128(c2[1824],_mm_xor_si128(c2[5834],_mm_xor_si128(c2[5824],_mm_xor_si128(c2[5281],_mm_xor_si128(c2[1850],_mm_xor_si128(c2[3572],_mm_xor_si128(c2[7569],_mm_xor_si128(c2[5307],_mm_xor_si128(c2[4166],_mm_xor_si128(c2[8176],_mm_xor_si128(c2[1872],_mm_xor_si128(c2[5882],_mm_xor_si128(c2[5333],_mm_xor_si128(c2[1326],_mm_xor_si128(c2[5336],_mm_xor_si128(c2[4197],_mm_xor_si128(c2[8194],_mm_xor_si128(c2[5359],_mm_xor_si128(c2[4796],_mm_xor_si128(c2[8793],_mm_xor_si128(c2[4794],_mm_xor_si128(c2[8791],_mm_xor_si128(c2[5385],_mm_xor_si128(c2[6529],_mm_xor_si128(c2[7102],_mm_xor_si128(c2[1961],_mm_xor_si128(c2[5411],_mm_xor_si128(c2[3129],_mm_xor_si128(c2[7126],_mm_xor_si128(c2[5414],_mm_xor_si128(c2[260],_mm_xor_si128(c2[5437],_mm_xor_si128(c2[5438],_mm_xor_si128(c2[3148],_mm_xor_si128(c2[7158],_mm_xor_si128(c2[5463],_mm_xor_si128(c2[3179],_mm_xor_si128(c2[7182],_mm_xor_si128(c2[2028],_mm_xor_si128(c2[5489],_mm_xor_si128(c2[7780],_mm_xor_si128(c2[2626],_mm_xor_si128(c2[5488],_mm_xor_si128(c2[347],_mm_xor_si128(c2[5515],_mm_xor_si128(c2[8383],_mm_xor_si128(c2[3229],_mm_xor_si128(c2[4378],_mm_xor_si128(c2[8375],_mm_xor_si128(c2[5541],_mm_xor_si128(c2[8973],_mm_xor_si128(c2[4396],_mm_xor_si128(c2[8406],_mm_xor_si128(c2[5567],_mm_xor_si128(c2[4425],_mm_xor_si128(c2[8426],_mm_xor_si128(c2[3285],_mm_xor_si128(c2[5593],_mm_xor_si128(c2[1014],_mm_xor_si128(c2[5024],_mm_xor_si128(c2[9029],_mm_xor_si128(c2[3875],_mm_xor_si128(c2[5619],_mm_xor_si128(c2[3336],_mm_xor_si128(c2[7333],_mm_xor_si128(c2[6192],_mm_xor_si128(c2[1051],_mm_xor_si128(c2[5645],_mm_xor_si128(c2[1067],_mm_xor_si128(c2[7370],_mm_xor_si128(c2[2216],_mm_xor_si128(c2[5671],_mm_xor_si128(c2[2809],_mm_xor_si128(c2[6819],_mm_xor_si128(c2[2818],_mm_xor_si128(c2[6815],_mm_xor_si128(c2[5697],_mm_xor_si128(c2[5127],_mm_xor_si128(c2[552],c2[4562]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 43
d2[559]=_mm_xor_si128(c2[5160],_mm_xor_si128(c2[8580],_mm_xor_si128(c2[7443],_mm_xor_si128(c2[3438],_mm_xor_si128(c2[7448],_mm_xor_si128(c2[5186],_mm_xor_si128(c2[8035],_mm_xor_si128(c2[4608],_mm_xor_si128(c2[8618],_mm_xor_si128(c2[598],_mm_xor_si128(c2[5212],_mm_xor_si128(c2[2340],_mm_xor_si128(c2[8060],_mm_xor_si128(c2[5238],_mm_xor_si128(c2[2945],_mm_xor_si128(c2[1802],_mm_xor_si128(c2[5799],_mm_xor_si128(c2[5264],_mm_xor_si128(c2[7550],_mm_xor_si128(c2[1820],_mm_xor_si128(c2[5830],_mm_xor_si128(c2[5290],_mm_xor_si128(c2[1846],_mm_xor_si128(c2[7578],_mm_xor_si128(c2[5316],_mm_xor_si128(c2[8172],_mm_xor_si128(c2[1881],_mm_xor_si128(c2[5878],_mm_xor_si128(c2[5342],_mm_xor_si128(c2[5332],_mm_xor_si128(c2[4193],_mm_xor_si128(c2[8190],_mm_xor_si128(c2[5368],_mm_xor_si128(c2[8789],_mm_xor_si128(c2[4790],_mm_xor_si128(c2[8800],_mm_xor_si128(c2[5394],_mm_xor_si128(c2[6538],_mm_xor_si128(c2[1957],_mm_xor_si128(c2[5420],_mm_xor_si128(c2[7135],_mm_xor_si128(c2[5410],_mm_xor_si128(c2[269],_mm_xor_si128(c2[5446],_mm_xor_si128(c2[5434],_mm_xor_si128(c2[3157],_mm_xor_si128(c2[7154],_mm_xor_si128(c2[5472],_mm_xor_si128(c2[3175],_mm_xor_si128(c2[7178],_mm_xor_si128(c2[2037],_mm_xor_si128(c2[5498],_mm_xor_si128(c2[2635],_mm_xor_si128(c2[5497],_mm_xor_si128(c2[343],_mm_xor_si128(c2[5524],_mm_xor_si128(c2[3225],_mm_xor_si128(c2[4374],_mm_xor_si128(c2[8384],_mm_xor_si128(c2[5550],_mm_xor_si128(c2[8982],_mm_xor_si128(c2[8402],_mm_xor_si128(c2[5576],_mm_xor_si128(c2[4421],_mm_xor_si128(c2[8435],_mm_xor_si128(c2[3281],_mm_xor_si128(c2[2142],_mm_xor_si128(c2[5602],_mm_xor_si128(c2[5020],_mm_xor_si128(c2[9025],_mm_xor_si128(c2[3884],_mm_xor_si128(c2[5628],_mm_xor_si128(c2[7342],_mm_xor_si128(c2[6188],_mm_xor_si128(c2[1047],_mm_xor_si128(c2[2190],_mm_xor_si128(c2[5654],_mm_xor_si128(c2[1076],_mm_xor_si128(c2[2212],_mm_xor_si128(c2[5680],_mm_xor_si128(c2[6815],_mm_xor_si128(c2[2814],_mm_xor_si128(c2[6824],_mm_xor_si128(c2[5706],_mm_xor_si128(c2[5123],_mm_xor_si128(c2[548],c2[4558]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 44
d2[572]=_mm_xor_si128(c2[5726],_mm_xor_si128(c2[8],_mm_xor_si128(c2[8009],_mm_xor_si128(c2[8014],_mm_xor_si128(c2[2288],_mm_xor_si128(c2[5752],_mm_xor_si128(c2[8614],_mm_xor_si128(c2[33],_mm_xor_si128(c2[5778],_mm_xor_si128(c2[2919],_mm_xor_si128(c2[8639],_mm_xor_si128(c2[5804],_mm_xor_si128(c2[3511],_mm_xor_si128(c2[6378],_mm_xor_si128(c2[5830],_mm_xor_si128(c2[8116],_mm_xor_si128(c2[6396],_mm_xor_si128(c2[5856],_mm_xor_si128(c2[2425],_mm_xor_si128(c2[8144],_mm_xor_si128(c2[5882],_mm_xor_si128(c2[8738],_mm_xor_si128(c2[6457],_mm_xor_si128(c2[5908],_mm_xor_si128(c2[5911],_mm_xor_si128(c2[8769],_mm_xor_si128(c2[3614],_mm_xor_si128(c2[5934],_mm_xor_si128(c2[217],_mm_xor_si128(c2[215],_mm_xor_si128(c2[5960],_mm_xor_si128(c2[7104],_mm_xor_si128(c2[2523],_mm_xor_si128(c2[8250],_mm_xor_si128(c2[5986],_mm_xor_si128(c2[7701],_mm_xor_si128(c2[835],_mm_xor_si128(c2[6012],_mm_xor_si128(c2[6013],_mm_xor_si128(c2[7733],_mm_xor_si128(c2[6038],_mm_xor_si128(c2[3754],_mm_xor_si128(c2[2603],_mm_xor_si128(c2[6064],_mm_xor_si128(c2[3201],_mm_xor_si128(c2[922],_mm_xor_si128(c2[6090],_mm_xor_si128(c2[3804],_mm_xor_si128(c2[8950],_mm_xor_si128(c2[6116],_mm_xor_si128(c2[397],_mm_xor_si128(c2[8981],_mm_xor_si128(c2[6142],_mm_xor_si128(c2[5000],_mm_xor_si128(c2[3860],_mm_xor_si128(c2[6168],_mm_xor_si128(c2[5599],_mm_xor_si128(c2[4450],_mm_xor_si128(c2[6194],_mm_xor_si128(c2[7908],_mm_xor_si128(c2[1613],_mm_xor_si128(c2[6220],_mm_xor_si128(c2[1642],_mm_xor_si128(c2[2791],_mm_xor_si128(c2[6246],_mm_xor_si128(c2[7394],_mm_xor_si128(c2[7390],_mm_xor_si128(c2[6272],_mm_xor_si128(c2[5702],c2[5124])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 45
d2[585]=_mm_xor_si128(c2[2897],_mm_xor_si128(c2[7594],c2[5417]));
}
}