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,139 @@
#include "PHY/sse_intrin.h"
// generated code for Zc=72, byte encoding
static inline void ldpc_BG2_Zc72_byte(uint8_t *c,uint8_t *d) {
__m64 *csimd=(__m64 *)c,*dsimd=(__m64 *)d;
__m64 *c2,*d2;
int i2;
for (i2=0; i2<9; i2++) {
c2=&csimd[i2];
d2=&dsimd[i2];
//row: 0
d2[0]=_mm_xor_si64(c2[360],_mm_xor_si64(c2[362],_mm_xor_si64(c2[1082],_mm_xor_si64(c2[201],_mm_xor_si64(c2[202],_mm_xor_si64(c2[1283],_mm_xor_si64(c2[762],_mm_xor_si64(c2[42],_mm_xor_si64(c2[418],_mm_xor_si64(c2[956],_mm_xor_si64(c2[596],_mm_xor_si64(c2[1335],_mm_xor_si64(c2[976],_mm_xor_si64(c2[974],_mm_xor_si64(c2[278],_mm_xor_si64(c2[630],_mm_xor_si64(c2[473],_mm_xor_si64(c2[649],_mm_xor_si64(c2[108],_mm_xor_si64(c2[309],_mm_xor_si64(c2[132],_mm_xor_si64(c2[872],_mm_xor_si64(c2[1228],_mm_xor_si64(c2[1410],_mm_xor_si64(c2[1248],_mm_xor_si64(c2[348],c2[1242]))))))))))))))))))))))))));
//row: 1
d2[9]=_mm_xor_si64(c2[540],_mm_xor_si64(c2[360],_mm_xor_si64(c2[362],_mm_xor_si64(c2[1082],_mm_xor_si64(c2[381],_mm_xor_si64(c2[201],_mm_xor_si64(c2[202],_mm_xor_si64(c2[1283],_mm_xor_si64(c2[942],_mm_xor_si64(c2[762],_mm_xor_si64(c2[42],_mm_xor_si64(c2[598],_mm_xor_si64(c2[418],_mm_xor_si64(c2[956],_mm_xor_si64(c2[596],_mm_xor_si64(c2[1335],_mm_xor_si64(c2[976],_mm_xor_si64(c2[974],_mm_xor_si64(c2[278],_mm_xor_si64(c2[630],_mm_xor_si64(c2[653],_mm_xor_si64(c2[473],_mm_xor_si64(c2[649],_mm_xor_si64(c2[108],_mm_xor_si64(c2[309],_mm_xor_si64(c2[132],_mm_xor_si64(c2[872],_mm_xor_si64(c2[1228],_mm_xor_si64(c2[1410],_mm_xor_si64(c2[1428],_mm_xor_si64(c2[1248],_mm_xor_si64(c2[348],c2[1242]))))))))))))))))))))))))))))))));
//row: 2
d2[18]=_mm_xor_si64(c2[540],_mm_xor_si64(c2[360],_mm_xor_si64(c2[542],_mm_xor_si64(c2[362],_mm_xor_si64(c2[1082],_mm_xor_si64(c2[381],_mm_xor_si64(c2[201],_mm_xor_si64(c2[202],_mm_xor_si64(c2[1283],_mm_xor_si64(c2[942],_mm_xor_si64(c2[762],_mm_xor_si64(c2[42],_mm_xor_si64(c2[598],_mm_xor_si64(c2[418],_mm_xor_si64(c2[1136],_mm_xor_si64(c2[956],_mm_xor_si64(c2[596],_mm_xor_si64(c2[76],_mm_xor_si64(c2[1335],_mm_xor_si64(c2[976],_mm_xor_si64(c2[974],_mm_xor_si64(c2[458],_mm_xor_si64(c2[278],_mm_xor_si64(c2[630],_mm_xor_si64(c2[653],_mm_xor_si64(c2[473],_mm_xor_si64(c2[829],_mm_xor_si64(c2[649],_mm_xor_si64(c2[108],_mm_xor_si64(c2[489],_mm_xor_si64(c2[309],_mm_xor_si64(c2[132],_mm_xor_si64(c2[1052],_mm_xor_si64(c2[872],_mm_xor_si64(c2[1228],_mm_xor_si64(c2[1410],_mm_xor_si64(c2[1428],_mm_xor_si64(c2[1248],_mm_xor_si64(c2[528],_mm_xor_si64(c2[348],c2[1242]))))))))))))))))))))))))))))))))))))))));
//row: 3
d2[27]=_mm_xor_si64(c2[360],_mm_xor_si64(c2[362],_mm_xor_si64(c2[1082],_mm_xor_si64(c2[201],_mm_xor_si64(c2[202],_mm_xor_si64(c2[24],_mm_xor_si64(c2[1283],_mm_xor_si64(c2[762],_mm_xor_si64(c2[222],_mm_xor_si64(c2[42],_mm_xor_si64(c2[418],_mm_xor_si64(c2[956],_mm_xor_si64(c2[596],_mm_xor_si64(c2[1335],_mm_xor_si64(c2[976],_mm_xor_si64(c2[1154],_mm_xor_si64(c2[974],_mm_xor_si64(c2[278],_mm_xor_si64(c2[810],_mm_xor_si64(c2[630],_mm_xor_si64(c2[473],_mm_xor_si64(c2[649],_mm_xor_si64(c2[288],_mm_xor_si64(c2[108],_mm_xor_si64(c2[309],_mm_xor_si64(c2[312],_mm_xor_si64(c2[132],_mm_xor_si64(c2[872],_mm_xor_si64(c2[1228],_mm_xor_si64(c2[151],_mm_xor_si64(c2[1410],_mm_xor_si64(c2[1248],_mm_xor_si64(c2[348],_mm_xor_si64(c2[1422],c2[1242]))))))))))))))))))))))))))))))))));
//row: 4
d2[36]=_mm_xor_si64(c2[1086],_mm_xor_si64(c2[906],_mm_xor_si64(c2[908],_mm_xor_si64(c2[180],_mm_xor_si64(c2[365],_mm_xor_si64(c2[918],_mm_xor_si64(c2[738],_mm_xor_si64(c2[739],_mm_xor_si64(c2[381],_mm_xor_si64(c2[21],_mm_xor_si64(c2[40],_mm_xor_si64(c2[1299],_mm_xor_si64(c2[579],_mm_xor_si64(c2[1135],_mm_xor_si64(c2[955],_mm_xor_si64(c2[54],_mm_xor_si64(c2[1142],_mm_xor_si64(c2[433],_mm_xor_si64(c2[74],_mm_xor_si64(c2[72],_mm_xor_si64(c2[815],_mm_xor_si64(c2[1176],_mm_xor_si64(c2[1190],_mm_xor_si64(c2[1010],_mm_xor_si64(c2[1195],_mm_xor_si64(c2[654],_mm_xor_si64(c2[846],_mm_xor_si64(c2[669],_mm_xor_si64(c2[1409],_mm_xor_si64(c2[326],_mm_xor_si64(c2[508],_mm_xor_si64(c2[526],_mm_xor_si64(c2[346],_mm_xor_si64(c2[885],c2[349]))))))))))))))))))))))))))))))))));
//row: 5
d2[45]=_mm_xor_si64(c2[360],_mm_xor_si64(c2[180],_mm_xor_si64(c2[182],_mm_xor_si64(c2[902],_mm_xor_si64(c2[5],_mm_xor_si64(c2[201],_mm_xor_si64(c2[21],_mm_xor_si64(c2[22],_mm_xor_si64(c2[1103],_mm_xor_si64(c2[746],_mm_xor_si64(c2[762],_mm_xor_si64(c2[582],_mm_xor_si64(c2[1301],_mm_xor_si64(c2[418],_mm_xor_si64(c2[238],_mm_xor_si64(c2[776],_mm_xor_si64(c2[416],_mm_xor_si64(c2[1155],_mm_xor_si64(c2[796],_mm_xor_si64(c2[794],_mm_xor_si64(c2[98],_mm_xor_si64(c2[450],_mm_xor_si64(c2[811],_mm_xor_si64(c2[473],_mm_xor_si64(c2[293],_mm_xor_si64(c2[469],_mm_xor_si64(c2[1376],_mm_xor_si64(c2[129],_mm_xor_si64(c2[1391],_mm_xor_si64(c2[314],_mm_xor_si64(c2[692],_mm_xor_si64(c2[1048],_mm_xor_si64(c2[1230],_mm_xor_si64(c2[1248],_mm_xor_si64(c2[1068],_mm_xor_si64(c2[168],c2[1062]))))))))))))))))))))))))))))))))))));
//row: 6
d2[54]=_mm_xor_si64(c2[1088],_mm_xor_si64(c2[908],_mm_xor_si64(c2[901],_mm_xor_si64(c2[182],_mm_xor_si64(c2[904],_mm_xor_si64(c2[920],_mm_xor_si64(c2[740],_mm_xor_si64(c2[741],_mm_xor_si64(c2[383],_mm_xor_si64(c2[42],_mm_xor_si64(c2[1301],_mm_xor_si64(c2[581],_mm_xor_si64(c2[1137],_mm_xor_si64(c2[957],_mm_xor_si64(c2[56],_mm_xor_si64(c2[1135],_mm_xor_si64(c2[435],_mm_xor_si64(c2[76],_mm_xor_si64(c2[74],_mm_xor_si64(c2[817],_mm_xor_si64(c2[1178],_mm_xor_si64(c2[1351],_mm_xor_si64(c2[1192],_mm_xor_si64(c2[1012],_mm_xor_si64(c2[1188],_mm_xor_si64(c2[656],_mm_xor_si64(c2[848],_mm_xor_si64(c2[671],_mm_xor_si64(c2[670],_mm_xor_si64(c2[1411],_mm_xor_si64(c2[328],_mm_xor_si64(c2[510],_mm_xor_si64(c2[528],_mm_xor_si64(c2[348],_mm_xor_si64(c2[887],_mm_xor_si64(c2[342],c2[1069]))))))))))))))))))))))))))))))))))));
//row: 7
d2[63]=_mm_xor_si64(c2[1264],_mm_xor_si64(c2[1084],_mm_xor_si64(c2[548],_mm_xor_si64(c2[1086],_mm_xor_si64(c2[541],_mm_xor_si64(c2[367],_mm_xor_si64(c2[1261],_mm_xor_si64(c2[1105],_mm_xor_si64(c2[925],_mm_xor_si64(c2[380],_mm_xor_si64(c2[926],_mm_xor_si64(c2[381],_mm_xor_si64(c2[559],_mm_xor_si64(c2[203],_mm_xor_si64(c2[23],_mm_xor_si64(c2[201],_mm_xor_si64(c2[218],_mm_xor_si64(c2[38],_mm_xor_si64(c2[941],_mm_xor_si64(c2[757],_mm_xor_si64(c2[401],_mm_xor_si64(c2[221],_mm_xor_si64(c2[1322],_mm_xor_si64(c2[1142],_mm_xor_si64(c2[597],_mm_xor_si64(c2[241],_mm_xor_si64(c2[1135],_mm_xor_si64(c2[1320],_mm_xor_si64(c2[775],_mm_xor_si64(c2[620],_mm_xor_si64(c2[75],_mm_xor_si64(c2[252],_mm_xor_si64(c2[1155],_mm_xor_si64(c2[259],_mm_xor_si64(c2[1333],_mm_xor_si64(c2[1153],_mm_xor_si64(c2[993],_mm_xor_si64(c2[457],_mm_xor_si64(c2[1354],_mm_xor_si64(c2[998],_mm_xor_si64(c2[818],_mm_xor_si64(c2[1357],_mm_xor_si64(c2[1368],_mm_xor_si64(c2[1188],_mm_xor_si64(c2[652],_mm_xor_si64(c2[1373],_mm_xor_si64(c2[828],_mm_xor_si64(c2[832],_mm_xor_si64(c2[476],_mm_xor_si64(c2[296],_mm_xor_si64(c2[1033],_mm_xor_si64(c2[488],_mm_xor_si64(c2[847],_mm_xor_si64(c2[491],_mm_xor_si64(c2[311],_mm_xor_si64(c2[670],_mm_xor_si64(c2[148],_mm_xor_si64(c2[1051],_mm_xor_si64(c2[504],_mm_xor_si64(c2[1407],_mm_xor_si64(c2[686],_mm_xor_si64(c2[330],_mm_xor_si64(c2[150],_mm_xor_si64(c2[704],_mm_xor_si64(c2[524],_mm_xor_si64(c2[1427],_mm_xor_si64(c2[1063],_mm_xor_si64(c2[527],_mm_xor_si64(c2[527],_mm_xor_si64(c2[162],c2[1430]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 8
d2[72]=_mm_xor_si64(c2[542],_mm_xor_si64(c2[362],_mm_xor_si64(c2[544],_mm_xor_si64(c2[364],_mm_xor_si64(c2[1084],_mm_xor_si64(c2[1088],_mm_xor_si64(c2[383],_mm_xor_si64(c2[203],_mm_xor_si64(c2[204],_mm_xor_si64(c2[1285],_mm_xor_si64(c2[926],_mm_xor_si64(c2[944],_mm_xor_si64(c2[764],_mm_xor_si64(c2[44],_mm_xor_si64(c2[600],_mm_xor_si64(c2[420],_mm_xor_si64(c2[1138],_mm_xor_si64(c2[958],_mm_xor_si64(c2[598],_mm_xor_si64(c2[78],_mm_xor_si64(c2[1337],_mm_xor_si64(c2[978],_mm_xor_si64(c2[976],_mm_xor_si64(c2[451],_mm_xor_si64(c2[271],_mm_xor_si64(c2[632],_mm_xor_si64(c2[655],_mm_xor_si64(c2[475],_mm_xor_si64(c2[831],_mm_xor_si64(c2[651],_mm_xor_si64(c2[110],_mm_xor_si64(c2[491],_mm_xor_si64(c2[311],_mm_xor_si64(c2[134],_mm_xor_si64(c2[1045],_mm_xor_si64(c2[865],_mm_xor_si64(c2[1230],_mm_xor_si64(c2[1412],_mm_xor_si64(c2[1430],_mm_xor_si64(c2[1250],_mm_xor_si64(c2[530],_mm_xor_si64(c2[350],c2[1244]))))))))))))))))))))))))))))))))))))))))));
//row: 9
d2[81]=_mm_xor_si64(c2[363],_mm_xor_si64(c2[726],_mm_xor_si64(c2[546],_mm_xor_si64(c2[365],_mm_xor_si64(c2[548],_mm_xor_si64(c2[1085],_mm_xor_si64(c2[1268],_mm_xor_si64(c2[204],_mm_xor_si64(c2[558],_mm_xor_si64(c2[378],_mm_xor_si64(c2[205],_mm_xor_si64(c2[379],_mm_xor_si64(c2[1286],_mm_xor_si64(c2[21],_mm_xor_si64(c2[201],_mm_xor_si64(c2[756],_mm_xor_si64(c2[1119],_mm_xor_si64(c2[939],_mm_xor_si64(c2[36],_mm_xor_si64(c2[219],_mm_xor_si64(c2[421],_mm_xor_si64(c2[775],_mm_xor_si64(c2[595],_mm_xor_si64(c2[959],_mm_xor_si64(c2[1142],_mm_xor_si64(c2[599],_mm_xor_si64(c2[782],_mm_xor_si64(c2[1338],_mm_xor_si64(c2[73],_mm_xor_si64(c2[979],_mm_xor_si64(c2[1153],_mm_xor_si64(c2[977],_mm_xor_si64(c2[1160],_mm_xor_si64(c2[272],_mm_xor_si64(c2[455],_mm_xor_si64(c2[633],_mm_xor_si64(c2[816],_mm_xor_si64(c2[476],_mm_xor_si64(c2[830],_mm_xor_si64(c2[650],_mm_xor_si64(c2[652],_mm_xor_si64(c2[835],_mm_xor_si64(c2[111],_mm_xor_si64(c2[294],_mm_xor_si64(c2[312],_mm_xor_si64(c2[486],_mm_xor_si64(c2[126],_mm_xor_si64(c2[309],_mm_xor_si64(c2[866],_mm_xor_si64(c2[1049],_mm_xor_si64(c2[1231],_mm_xor_si64(c2[1405],_mm_xor_si64(c2[1404],_mm_xor_si64(c2[148],_mm_xor_si64(c2[149],_mm_xor_si64(c2[1242],_mm_xor_si64(c2[166],_mm_xor_si64(c2[1425],_mm_xor_si64(c2[342],_mm_xor_si64(c2[525],_mm_xor_si64(c2[1245],c2[1428])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 10
d2[90]=_mm_xor_si64(c2[1085],_mm_xor_si64(c2[203],_mm_xor_si64(c2[1011],c2[129])));
//row: 11
d2[99]=_mm_xor_si64(c2[368],_mm_xor_si64(c2[361],_mm_xor_si64(c2[1081],_mm_xor_si64(c2[723],_mm_xor_si64(c2[200],_mm_xor_si64(c2[201],_mm_xor_si64(c2[23],_mm_xor_si64(c2[1282],_mm_xor_si64(c2[761],_mm_xor_si64(c2[221],_mm_xor_si64(c2[41],_mm_xor_si64(c2[417],_mm_xor_si64(c2[955],_mm_xor_si64(c2[595],_mm_xor_si64(c2[1334],_mm_xor_si64(c2[975],_mm_xor_si64(c2[1153],_mm_xor_si64(c2[973],_mm_xor_si64(c2[277],_mm_xor_si64(c2[818],_mm_xor_si64(c2[638],_mm_xor_si64(c2[472],_mm_xor_si64(c2[648],_mm_xor_si64(c2[296],_mm_xor_si64(c2[116],_mm_xor_si64(c2[308],_mm_xor_si64(c2[311],_mm_xor_si64(c2[131],_mm_xor_si64(c2[1209],_mm_xor_si64(c2[871],_mm_xor_si64(c2[1227],_mm_xor_si64(c2[150],_mm_xor_si64(c2[1409],_mm_xor_si64(c2[1247],_mm_xor_si64(c2[347],_mm_xor_si64(c2[1430],_mm_xor_si64(c2[1250],c2[887])))))))))))))))))))))))))))))))))))));
//row: 12
d2[108]=_mm_xor_si64(c2[1087],_mm_xor_si64(c2[907],_mm_xor_si64(c2[900],_mm_xor_si64(c2[181],_mm_xor_si64(c2[919],_mm_xor_si64(c2[739],_mm_xor_si64(c2[740],_mm_xor_si64(c2[382],_mm_xor_si64(c2[202],_mm_xor_si64(c2[41],_mm_xor_si64(c2[1300],_mm_xor_si64(c2[580],_mm_xor_si64(c2[1136],_mm_xor_si64(c2[956],_mm_xor_si64(c2[55],_mm_xor_si64(c2[1134],_mm_xor_si64(c2[420],_mm_xor_si64(c2[434],_mm_xor_si64(c2[75],_mm_xor_si64(c2[73],_mm_xor_si64(c2[816],_mm_xor_si64(c2[1177],_mm_xor_si64(c2[1191],_mm_xor_si64(c2[1011],_mm_xor_si64(c2[1196],_mm_xor_si64(c2[655],_mm_xor_si64(c2[847],_mm_xor_si64(c2[670],_mm_xor_si64(c2[1410],_mm_xor_si64(c2[327],_mm_xor_si64(c2[509],_mm_xor_si64(c2[527],_mm_xor_si64(c2[347],_mm_xor_si64(c2[886],c2[350]))))))))))))))))))))))))))))))))));
//row: 13
d2[117]=_mm_xor_si64(c2[186],_mm_xor_si64(c2[188],_mm_xor_si64(c2[908],_mm_xor_si64(c2[720],_mm_xor_si64(c2[18],_mm_xor_si64(c2[19],_mm_xor_si64(c2[1280],_mm_xor_si64(c2[1100],_mm_xor_si64(c2[922],_mm_xor_si64(c2[579],_mm_xor_si64(c2[39],_mm_xor_si64(c2[1298],_mm_xor_si64(c2[235],_mm_xor_si64(c2[782],_mm_xor_si64(c2[422],_mm_xor_si64(c2[1152],_mm_xor_si64(c2[793],_mm_xor_si64(c2[980],_mm_xor_si64(c2[800],_mm_xor_si64(c2[95],_mm_xor_si64(c2[636],_mm_xor_si64(c2[456],_mm_xor_si64(c2[290],_mm_xor_si64(c2[475],_mm_xor_si64(c2[114],_mm_xor_si64(c2[1373],_mm_xor_si64(c2[126],_mm_xor_si64(c2[129],_mm_xor_si64(c2[1388],_mm_xor_si64(c2[689],_mm_xor_si64(c2[1045],_mm_xor_si64(c2[1407],_mm_xor_si64(c2[1227],_mm_xor_si64(c2[1231],_mm_xor_si64(c2[1065],_mm_xor_si64(c2[165],_mm_xor_si64(c2[1248],c2[1068])))))))))))))))))))))))))))))))))))));
//row: 14
d2[126]=_mm_xor_si64(c2[907],_mm_xor_si64(c2[727],_mm_xor_si64(c2[543],_mm_xor_si64(c2[720],_mm_xor_si64(c2[545],_mm_xor_si64(c2[1],_mm_xor_si64(c2[1265],_mm_xor_si64(c2[739],_mm_xor_si64(c2[559],_mm_xor_si64(c2[384],_mm_xor_si64(c2[560],_mm_xor_si64(c2[385],_mm_xor_si64(c2[202],_mm_xor_si64(c2[198],_mm_xor_si64(c2[18],_mm_xor_si64(c2[1286],_mm_xor_si64(c2[1300],_mm_xor_si64(c2[1120],_mm_xor_si64(c2[936],_mm_xor_si64(c2[400],_mm_xor_si64(c2[396],_mm_xor_si64(c2[216],_mm_xor_si64(c2[956],_mm_xor_si64(c2[776],_mm_xor_si64(c2[601],_mm_xor_si64(c2[1314],_mm_xor_si64(c2[1139],_mm_xor_si64(c2[954],_mm_xor_si64(c2[779],_mm_xor_si64(c2[254],_mm_xor_si64(c2[79],_mm_xor_si64(c2[1334],_mm_xor_si64(c2[1159],_mm_xor_si64(c2[1332],_mm_xor_si64(c2[1337],_mm_xor_si64(c2[1157],_mm_xor_si64(c2[636],_mm_xor_si64(c2[452],_mm_xor_si64(c2[997],_mm_xor_si64(c2[993],_mm_xor_si64(c2[813],_mm_xor_si64(c2[1011],_mm_xor_si64(c2[831],_mm_xor_si64(c2[656],_mm_xor_si64(c2[1016],_mm_xor_si64(c2[832],_mm_xor_si64(c2[475],_mm_xor_si64(c2[471],_mm_xor_si64(c2[291],_mm_xor_si64(c2[654],_mm_xor_si64(c2[667],_mm_xor_si64(c2[492],_mm_xor_si64(c2[490],_mm_xor_si64(c2[486],_mm_xor_si64(c2[306],_mm_xor_si64(c2[1230],_mm_xor_si64(c2[1046],_mm_xor_si64(c2[147],_mm_xor_si64(c2[1411],_mm_xor_si64(c2[329],_mm_xor_si64(c2[325],_mm_xor_si64(c2[145],_mm_xor_si64(c2[347],_mm_xor_si64(c2[167],_mm_xor_si64(c2[1422],_mm_xor_si64(c2[706],_mm_xor_si64(c2[522],_mm_xor_si64(c2[170],_mm_xor_si64(c2[166],c2[1425])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 15
d2[135]=_mm_xor_si64(c2[363],_mm_xor_si64(c2[547],_mm_xor_si64(c2[367],_mm_xor_si64(c2[365],_mm_xor_si64(c2[360],_mm_xor_si64(c2[1085],_mm_xor_si64(c2[1080],_mm_xor_si64(c2[548],_mm_xor_si64(c2[204],_mm_xor_si64(c2[379],_mm_xor_si64(c2[199],_mm_xor_si64(c2[205],_mm_xor_si64(c2[200],_mm_xor_si64(c2[1286],_mm_xor_si64(c2[1281],_mm_xor_si64(c2[756],_mm_xor_si64(c2[940],_mm_xor_si64(c2[760],_mm_xor_si64(c2[36],_mm_xor_si64(c2[40],_mm_xor_si64(c2[421],_mm_xor_si64(c2[596],_mm_xor_si64(c2[416],_mm_xor_si64(c2[959],_mm_xor_si64(c2[954],_mm_xor_si64(c2[599],_mm_xor_si64(c2[594],_mm_xor_si64(c2[1338],_mm_xor_si64(c2[1333],_mm_xor_si64(c2[979],_mm_xor_si64(c2[974],_mm_xor_si64(c2[977],_mm_xor_si64(c2[972],_mm_xor_si64(c2[272],_mm_xor_si64(c2[276],_mm_xor_si64(c2[633],_mm_xor_si64(c2[637],_mm_xor_si64(c2[476],_mm_xor_si64(c2[651],_mm_xor_si64(c2[471],_mm_xor_si64(c2[652],_mm_xor_si64(c2[656],_mm_xor_si64(c2[111],_mm_xor_si64(c2[115],_mm_xor_si64(c2[312],_mm_xor_si64(c2[307],_mm_xor_si64(c2[126],_mm_xor_si64(c2[130],_mm_xor_si64(c2[866],_mm_xor_si64(c2[870],_mm_xor_si64(c2[1231],_mm_xor_si64(c2[1226],_mm_xor_si64(c2[1404],_mm_xor_si64(c2[1408],_mm_xor_si64(c2[1242],_mm_xor_si64(c2[1426],_mm_xor_si64(c2[1246],_mm_xor_si64(c2[342],_mm_xor_si64(c2[346],_mm_xor_si64(c2[1245],c2[1249]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 16
d2[144]=_mm_xor_si64(c2[1263],_mm_xor_si64(c2[1083],_mm_xor_si64(c2[541],_mm_xor_si64(c2[361],_mm_xor_si64(c2[1085],_mm_xor_si64(c2[543],_mm_xor_si64(c2[363],_mm_xor_si64(c2[366],_mm_xor_si64(c2[1083],_mm_xor_si64(c2[1104],_mm_xor_si64(c2[924],_mm_xor_si64(c2[382],_mm_xor_si64(c2[202],_mm_xor_si64(c2[925],_mm_xor_si64(c2[203],_mm_xor_si64(c2[558],_mm_xor_si64(c2[1284],_mm_xor_si64(c2[24],_mm_xor_si64(c2[217],_mm_xor_si64(c2[37],_mm_xor_si64(c2[943],_mm_xor_si64(c2[763],_mm_xor_si64(c2[756],_mm_xor_si64(c2[43],_mm_xor_si64(c2[1321],_mm_xor_si64(c2[1141],_mm_xor_si64(c2[599],_mm_xor_si64(c2[419],_mm_xor_si64(c2[240],_mm_xor_si64(c2[1137],_mm_xor_si64(c2[957],_mm_xor_si64(c2[1319],_mm_xor_si64(c2[597],_mm_xor_si64(c2[619],_mm_xor_si64(c2[77],_mm_xor_si64(c2[1336],_mm_xor_si64(c2[260],_mm_xor_si64(c2[977],_mm_xor_si64(c2[258],_mm_xor_si64(c2[975],_mm_xor_si64(c2[992],_mm_xor_si64(c2[450],_mm_xor_si64(c2[270],_mm_xor_si64(c2[1353],_mm_xor_si64(c2[631],_mm_xor_si64(c2[1376],_mm_xor_si64(c2[1196],_mm_xor_si64(c2[654],_mm_xor_si64(c2[474],_mm_xor_si64(c2[1372],_mm_xor_si64(c2[830],_mm_xor_si64(c2[650],_mm_xor_si64(c2[831],_mm_xor_si64(c2[109],_mm_xor_si64(c2[1032],_mm_xor_si64(c2[490],_mm_xor_si64(c2[310],_mm_xor_si64(c2[846],_mm_xor_si64(c2[133],_mm_xor_si64(c2[147],_mm_xor_si64(c2[1044],_mm_xor_si64(c2[864],_mm_xor_si64(c2[512],_mm_xor_si64(c2[1229],_mm_xor_si64(c2[685],_mm_xor_si64(c2[1411],_mm_xor_si64(c2[703],_mm_xor_si64(c2[523],_mm_xor_si64(c2[1429],_mm_xor_si64(c2[1249],_mm_xor_si64(c2[1062],_mm_xor_si64(c2[529],_mm_xor_si64(c2[349],_mm_xor_si64(c2[526],_mm_xor_si64(c2[1243],c2[343])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 17
d2[153]=_mm_xor_si64(c2[728],_mm_xor_si64(c2[548],_mm_xor_si64(c2[905],_mm_xor_si64(c2[725],_mm_xor_si64(c2[541],_mm_xor_si64(c2[907],_mm_xor_si64(c2[727],_mm_xor_si64(c2[1261],_mm_xor_si64(c2[8],_mm_xor_si64(c2[560],_mm_xor_si64(c2[380],_mm_xor_si64(c2[746],_mm_xor_si64(c2[566],_mm_xor_si64(c2[381],_mm_xor_si64(c2[558],_mm_xor_si64(c2[23],_mm_xor_si64(c2[200],_mm_xor_si64(c2[24],_mm_xor_si64(c2[1121],_mm_xor_si64(c2[941],_mm_xor_si64(c2[1298],_mm_xor_si64(c2[1118],_mm_xor_si64(c2[221],_mm_xor_si64(c2[398],_mm_xor_si64(c2[777],_mm_xor_si64(c2[597],_mm_xor_si64(c2[954],_mm_xor_si64(c2[774],_mm_xor_si64(c2[1135],_mm_xor_si64(c2[62],_mm_xor_si64(c2[1321],_mm_xor_si64(c2[775],_mm_xor_si64(c2[961],_mm_xor_si64(c2[75],_mm_xor_si64(c2[432],_mm_xor_si64(c2[252],_mm_xor_si64(c2[1155],_mm_xor_si64(c2[1332],_mm_xor_si64(c2[1153],_mm_xor_si64(c2[1339],_mm_xor_si64(c2[457],_mm_xor_si64(c2[814],_mm_xor_si64(c2[634],_mm_xor_si64(c2[818],_mm_xor_si64(c2[995],_mm_xor_si64(c2[635],_mm_xor_si64(c2[832],_mm_xor_si64(c2[652],_mm_xor_si64(c2[1009],_mm_xor_si64(c2[829],_mm_xor_si64(c2[828],_mm_xor_si64(c2[1194],_mm_xor_si64(c2[1014],_mm_xor_si64(c2[296],_mm_xor_si64(c2[473],_mm_xor_si64(c2[488],_mm_xor_si64(c2[854],_mm_xor_si64(c2[674],_mm_xor_si64(c2[311],_mm_xor_si64(c2[488],_mm_xor_si64(c2[1051],_mm_xor_si64(c2[1408],_mm_xor_si64(c2[1228],_mm_xor_si64(c2[1407],_mm_xor_si64(c2[145],_mm_xor_si64(c2[150],_mm_xor_si64(c2[327],_mm_xor_si64(c2[168],_mm_xor_si64(c2[1427],_mm_xor_si64(c2[345],_mm_xor_si64(c2[165],_mm_xor_si64(c2[527],_mm_xor_si64(c2[884],_mm_xor_si64(c2[704],_mm_xor_si64(c2[1430],c2[168])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 18
d2[162]=_mm_xor_si64(c2[182],_mm_xor_si64(c2[472],c2[1214]));
//row: 19
d2[171]=_mm_xor_si64(c2[545],_mm_xor_si64(c2[547],_mm_xor_si64(c2[1267],_mm_xor_si64(c2[1260],_mm_xor_si64(c2[386],_mm_xor_si64(c2[378],_mm_xor_si64(c2[20],_mm_xor_si64(c2[741],_mm_xor_si64(c2[938],_mm_xor_si64(c2[218],_mm_xor_si64(c2[594],_mm_xor_si64(c2[1141],_mm_xor_si64(c2[781],_mm_xor_si64(c2[72],_mm_xor_si64(c2[1152],_mm_xor_si64(c2[1159],_mm_xor_si64(c2[454],_mm_xor_si64(c2[815],_mm_xor_si64(c2[649],_mm_xor_si64(c2[834],_mm_xor_si64(c2[293],_mm_xor_si64(c2[494],_mm_xor_si64(c2[308],_mm_xor_si64(c2[1048],_mm_xor_si64(c2[1404],_mm_xor_si64(c2[147],_mm_xor_si64(c2[1424],_mm_xor_si64(c2[524],c2[1427]))))))))))))))))))))))))))));
//row: 20
d2[180]=_mm_xor_si64(c2[181],_mm_xor_si64(c2[1],_mm_xor_si64(c2[3],_mm_xor_si64(c2[723],_mm_xor_si64(c2[22],_mm_xor_si64(c2[1281],_mm_xor_si64(c2[1282],_mm_xor_si64(c2[924],_mm_xor_si64(c2[378],_mm_xor_si64(c2[583],_mm_xor_si64(c2[403],_mm_xor_si64(c2[1122],_mm_xor_si64(c2[239],_mm_xor_si64(c2[59],_mm_xor_si64(c2[597],_mm_xor_si64(c2[237],_mm_xor_si64(c2[976],_mm_xor_si64(c2[617],_mm_xor_si64(c2[615],_mm_xor_si64(c2[1335],_mm_xor_si64(c2[1358],_mm_xor_si64(c2[271],_mm_xor_si64(c2[294],_mm_xor_si64(c2[114],_mm_xor_si64(c2[290],_mm_xor_si64(c2[1188],_mm_xor_si64(c2[1389],_mm_xor_si64(c2[1212],_mm_xor_si64(c2[504],_mm_xor_si64(c2[869],_mm_xor_si64(c2[1051],_mm_xor_si64(c2[1069],_mm_xor_si64(c2[889],_mm_xor_si64(c2[1428],c2[883]))))))))))))))))))))))))))))))))));
//row: 21
d2[189]=_mm_xor_si64(c2[541],_mm_xor_si64(c2[543],_mm_xor_si64(c2[1263],_mm_xor_si64(c2[542],_mm_xor_si64(c2[382],_mm_xor_si64(c2[383],_mm_xor_si64(c2[205],_mm_xor_si64(c2[25],_mm_xor_si64(c2[943],_mm_xor_si64(c2[403],_mm_xor_si64(c2[223],_mm_xor_si64(c2[599],_mm_xor_si64(c2[1137],_mm_xor_si64(c2[777],_mm_xor_si64(c2[77],_mm_xor_si64(c2[1157],_mm_xor_si64(c2[1335],_mm_xor_si64(c2[1155],_mm_xor_si64(c2[450],_mm_xor_si64(c2[991],_mm_xor_si64(c2[811],_mm_xor_si64(c2[654],_mm_xor_si64(c2[830],_mm_xor_si64(c2[469],_mm_xor_si64(c2[289],_mm_xor_si64(c2[490],_mm_xor_si64(c2[493],_mm_xor_si64(c2[313],_mm_xor_si64(c2[1044],_mm_xor_si64(c2[1409],_mm_xor_si64(c2[332],_mm_xor_si64(c2[152],_mm_xor_si64(c2[684],_mm_xor_si64(c2[1429],_mm_xor_si64(c2[529],_mm_xor_si64(c2[164],c2[1423]))))))))))))))))))))))))))))))))))));
//row: 22
d2[198]=_mm_xor_si64(c2[1104],c2[763]);
//row: 23
d2[207]=_mm_xor_si64(c2[728],_mm_xor_si64(c2[599],c2[97]));
//row: 24
d2[216]=_mm_xor_si64(c2[1101],_mm_xor_si64(c2[401],c2[1065]));
//row: 25
d2[225]=_mm_xor_si64(c2[7],c2[1357]);
//row: 26
d2[234]=_mm_xor_si64(c2[1263],_mm_xor_si64(c2[1083],_mm_xor_si64(c2[1267],_mm_xor_si64(c2[1265],_mm_xor_si64(c2[1085],_mm_xor_si64(c2[1260],_mm_xor_si64(c2[366],_mm_xor_si64(c2[541],_mm_xor_si64(c2[1104],_mm_xor_si64(c2[924],_mm_xor_si64(c2[1099],_mm_xor_si64(c2[925],_mm_xor_si64(c2[1100],_mm_xor_si64(c2[558],_mm_xor_si64(c2[922],_mm_xor_si64(c2[742],_mm_xor_si64(c2[217],_mm_xor_si64(c2[37],_mm_xor_si64(c2[221],_mm_xor_si64(c2[756],_mm_xor_si64(c2[1120],_mm_xor_si64(c2[940],_mm_xor_si64(c2[1124],_mm_xor_si64(c2[1321],_mm_xor_si64(c2[1141],_mm_xor_si64(c2[1316],_mm_xor_si64(c2[420],_mm_xor_si64(c2[240],_mm_xor_si64(c2[415],_mm_xor_si64(c2[1319],_mm_xor_si64(c2[55],_mm_xor_si64(c2[799],_mm_xor_si64(c2[619],_mm_xor_si64(c2[794],_mm_xor_si64(c2[260],_mm_xor_si64(c2[435],_mm_xor_si64(c2[258],_mm_xor_si64(c2[613],_mm_xor_si64(c2[433],_mm_xor_si64(c2[1172],_mm_xor_si64(c2[992],_mm_xor_si64(c2[1176],_mm_xor_si64(c2[1353],_mm_xor_si64(c2[278],_mm_xor_si64(c2[98],_mm_xor_si64(c2[1376],_mm_xor_si64(c2[1196],_mm_xor_si64(c2[1371],_mm_xor_si64(c2[113],_mm_xor_si64(c2[1372],_mm_xor_si64(c2[108],_mm_xor_si64(c2[831],_mm_xor_si64(c2[1195],_mm_xor_si64(c2[1015],_mm_xor_si64(c2[1212],_mm_xor_si64(c2[1032],_mm_xor_si64(c2[1207],_mm_xor_si64(c2[846],_mm_xor_si64(c2[1210],_mm_xor_si64(c2[1030],_mm_xor_si64(c2[849],_mm_xor_si64(c2[327],_mm_xor_si64(c2[147],_mm_xor_si64(c2[331],_mm_xor_si64(c2[512],_mm_xor_si64(c2[687],_mm_xor_si64(c2[685],_mm_xor_si64(c2[1049],_mm_xor_si64(c2[869],_mm_xor_si64(c2[703],_mm_xor_si64(c2[523],_mm_xor_si64(c2[707],_mm_xor_si64(c2[1242],_mm_xor_si64(c2[1062],_mm_xor_si64(c2[1246],_mm_xor_si64(c2[526],_mm_xor_si64(c2[890],c2[710])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 27
d2[243]=_mm_xor_si64(c2[901],c2[469]);
//row: 28
d2[252]=_mm_xor_si64(c2[382],_mm_xor_si64(c2[936],c2[635]));
//row: 29
d2[261]=_mm_xor_si64(c2[907],c2[255]);
//row: 30
d2[270]=_mm_xor_si64(c2[1297],_mm_xor_si64(c2[97],_mm_xor_si64(c2[130],c2[1250])));
//row: 31
d2[279]=_mm_xor_si64(c2[908],_mm_xor_si64(c2[901],_mm_xor_si64(c2[182],_mm_xor_si64(c2[740],_mm_xor_si64(c2[741],_mm_xor_si64(c2[563],_mm_xor_si64(c2[383],_mm_xor_si64(c2[19],_mm_xor_si64(c2[1301],_mm_xor_si64(c2[761],_mm_xor_si64(c2[581],_mm_xor_si64(c2[957],_mm_xor_si64(c2[56],_mm_xor_si64(c2[1135],_mm_xor_si64(c2[435],_mm_xor_si64(c2[76],_mm_xor_si64(c2[254],_mm_xor_si64(c2[74],_mm_xor_si64(c2[817],_mm_xor_si64(c2[1358],_mm_xor_si64(c2[1178],_mm_xor_si64(c2[1012],_mm_xor_si64(c2[1188],_mm_xor_si64(c2[836],_mm_xor_si64(c2[656],_mm_xor_si64(c2[848],_mm_xor_si64(c2[851],_mm_xor_si64(c2[671],_mm_xor_si64(c2[1411],_mm_xor_si64(c2[328],_mm_xor_si64(c2[690],_mm_xor_si64(c2[510],_mm_xor_si64(c2[348],_mm_xor_si64(c2[887],_mm_xor_si64(c2[522],c2[342])))))))))))))))))))))))))))))))))));
//row: 32
d2[288]=_mm_xor_si64(c2[360],_mm_xor_si64(c2[180],_mm_xor_si64(c2[362],_mm_xor_si64(c2[182],_mm_xor_si64(c2[902],_mm_xor_si64(c2[4],_mm_xor_si64(c2[201],_mm_xor_si64(c2[21],_mm_xor_si64(c2[22],_mm_xor_si64(c2[1103],_mm_xor_si64(c2[762],_mm_xor_si64(c2[582],_mm_xor_si64(c2[1301],_mm_xor_si64(c2[418],_mm_xor_si64(c2[238],_mm_xor_si64(c2[956],_mm_xor_si64(c2[776],_mm_xor_si64(c2[416],_mm_xor_si64(c2[1335],_mm_xor_si64(c2[1155],_mm_xor_si64(c2[796],_mm_xor_si64(c2[794],_mm_xor_si64(c2[278],_mm_xor_si64(c2[98],_mm_xor_si64(c2[450],_mm_xor_si64(c2[272],_mm_xor_si64(c2[473],_mm_xor_si64(c2[293],_mm_xor_si64(c2[649],_mm_xor_si64(c2[469],_mm_xor_si64(c2[1376],_mm_xor_si64(c2[309],_mm_xor_si64(c2[129],_mm_xor_si64(c2[1391],_mm_xor_si64(c2[872],_mm_xor_si64(c2[692],_mm_xor_si64(c2[1048],_mm_xor_si64(c2[1230],_mm_xor_si64(c2[1248],_mm_xor_si64(c2[1068],_mm_xor_si64(c2[348],_mm_xor_si64(c2[168],c2[1062]))))))))))))))))))))))))))))))))))))))))));
//row: 33
d2[297]=_mm_xor_si64(c2[720],_mm_xor_si64(c2[722],_mm_xor_si64(c2[3],_mm_xor_si64(c2[561],_mm_xor_si64(c2[562],_mm_xor_si64(c2[204],_mm_xor_si64(c2[1122],_mm_xor_si64(c2[402],_mm_xor_si64(c2[1303],_mm_xor_si64(c2[778],_mm_xor_si64(c2[1316],_mm_xor_si64(c2[956],_mm_xor_si64(c2[256],_mm_xor_si64(c2[1336],_mm_xor_si64(c2[1334],_mm_xor_si64(c2[638],_mm_xor_si64(c2[990],_mm_xor_si64(c2[833],_mm_xor_si64(c2[1009],_mm_xor_si64(c2[468],_mm_xor_si64(c2[669],_mm_xor_si64(c2[492],_mm_xor_si64(c2[1206],_mm_xor_si64(c2[1232],_mm_xor_si64(c2[149],_mm_xor_si64(c2[331],_mm_xor_si64(c2[169],_mm_xor_si64(c2[708],c2[163]))))))))))))))))))))))))))));
//row: 34
d2[306]=_mm_xor_si64(c2[723],_mm_xor_si64(c2[543],_mm_xor_si64(c2[725],_mm_xor_si64(c2[725],_mm_xor_si64(c2[545],_mm_xor_si64(c2[727],_mm_xor_si64(c2[1265],_mm_xor_si64(c2[8],_mm_xor_si64(c2[904],_mm_xor_si64(c2[564],_mm_xor_si64(c2[384],_mm_xor_si64(c2[566],_mm_xor_si64(c2[385],_mm_xor_si64(c2[558],_mm_xor_si64(c2[18],_mm_xor_si64(c2[380],_mm_xor_si64(c2[200],_mm_xor_si64(c2[1116],_mm_xor_si64(c2[936],_mm_xor_si64(c2[1118],_mm_xor_si64(c2[216],_mm_xor_si64(c2[578],_mm_xor_si64(c2[398],_mm_xor_si64(c2[781],_mm_xor_si64(c2[601],_mm_xor_si64(c2[774],_mm_xor_si64(c2[1319],_mm_xor_si64(c2[1139],_mm_xor_si64(c2[1321],_mm_xor_si64(c2[779],_mm_xor_si64(c2[961],_mm_xor_si64(c2[259],_mm_xor_si64(c2[79],_mm_xor_si64(c2[252],_mm_xor_si64(c2[1159],_mm_xor_si64(c2[1332],_mm_xor_si64(c2[1157],_mm_xor_si64(c2[80],_mm_xor_si64(c2[1339],_mm_xor_si64(c2[632],_mm_xor_si64(c2[452],_mm_xor_si64(c2[634],_mm_xor_si64(c2[813],_mm_xor_si64(c2[1175],_mm_xor_si64(c2[995],_mm_xor_si64(c2[836],_mm_xor_si64(c2[656],_mm_xor_si64(c2[829],_mm_xor_si64(c2[1012],_mm_xor_si64(c2[832],_mm_xor_si64(c2[1014],_mm_xor_si64(c2[291],_mm_xor_si64(c2[653],_mm_xor_si64(c2[473],_mm_xor_si64(c2[672],_mm_xor_si64(c2[492],_mm_xor_si64(c2[674],_mm_xor_si64(c2[306],_mm_xor_si64(c2[668],_mm_xor_si64(c2[488],_mm_xor_si64(c2[1226],_mm_xor_si64(c2[1046],_mm_xor_si64(c2[1228],_mm_xor_si64(c2[1411],_mm_xor_si64(c2[145],_mm_xor_si64(c2[145],_mm_xor_si64(c2[507],_mm_xor_si64(c2[327],_mm_xor_si64(c2[163],_mm_xor_si64(c2[1422],_mm_xor_si64(c2[165],_mm_xor_si64(c2[702],_mm_xor_si64(c2[522],_mm_xor_si64(c2[704],_mm_xor_si64(c2[1425],_mm_xor_si64(c2[348],c2[168]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 35
d2[315]=_mm_xor_si64(c2[3],_mm_xor_si64(c2[1262],_mm_xor_si64(c2[1264],_mm_xor_si64(c2[545],_mm_xor_si64(c2[1283],_mm_xor_si64(c2[1103],_mm_xor_si64(c2[1104],_mm_xor_si64(c2[746],_mm_xor_si64(c2[745],_mm_xor_si64(c2[396],_mm_xor_si64(c2[216],_mm_xor_si64(c2[944],_mm_xor_si64(c2[61],_mm_xor_si64(c2[1320],_mm_xor_si64(c2[419],_mm_xor_si64(c2[59],_mm_xor_si64(c2[798],_mm_xor_si64(c2[439],_mm_xor_si64(c2[437],_mm_xor_si64(c2[1171],_mm_xor_si64(c2[93],_mm_xor_si64(c2[278],_mm_xor_si64(c2[116],_mm_xor_si64(c2[1375],_mm_xor_si64(c2[112],_mm_xor_si64(c2[1010],_mm_xor_si64(c2[1211],_mm_xor_si64(c2[1034],_mm_xor_si64(c2[326],_mm_xor_si64(c2[691],_mm_xor_si64(c2[864],_mm_xor_si64(c2[882],_mm_xor_si64(c2[702],_mm_xor_si64(c2[1250],c2[705]))))))))))))))))))))))))))))))))));
//row: 36
d2[324]=_mm_xor_si64(c2[186],_mm_xor_si64(c2[223],c2[489]));
//row: 37
d2[333]=_mm_xor_si64(c2[543],_mm_xor_si64(c2[367],_mm_xor_si64(c2[545],_mm_xor_si64(c2[360],_mm_xor_si64(c2[1265],_mm_xor_si64(c2[1080],_mm_xor_si64(c2[384],_mm_xor_si64(c2[199],_mm_xor_si64(c2[385],_mm_xor_si64(c2[200],_mm_xor_si64(c2[18],_mm_xor_si64(c2[22],_mm_xor_si64(c2[1281],_mm_xor_si64(c2[936],_mm_xor_si64(c2[760],_mm_xor_si64(c2[216],_mm_xor_si64(c2[220],_mm_xor_si64(c2[40],_mm_xor_si64(c2[601],_mm_xor_si64(c2[416],_mm_xor_si64(c2[1139],_mm_xor_si64(c2[954],_mm_xor_si64(c2[779],_mm_xor_si64(c2[594],_mm_xor_si64(c2[79],_mm_xor_si64(c2[1333],_mm_xor_si64(c2[1159],_mm_xor_si64(c2[974],_mm_xor_si64(c2[1157],_mm_xor_si64(c2[1152],_mm_xor_si64(c2[972],_mm_xor_si64(c2[452],_mm_xor_si64(c2[276],_mm_xor_si64(c2[813],_mm_xor_si64(c2[817],_mm_xor_si64(c2[637],_mm_xor_si64(c2[656],_mm_xor_si64(c2[471],_mm_xor_si64(c2[832],_mm_xor_si64(c2[656],_mm_xor_si64(c2[291],_mm_xor_si64(c2[295],_mm_xor_si64(c2[115],_mm_xor_si64(c2[492],_mm_xor_si64(c2[307],_mm_xor_si64(c2[306],_mm_xor_si64(c2[310],_mm_xor_si64(c2[130],_mm_xor_si64(c2[1046],_mm_xor_si64(c2[870],_mm_xor_si64(c2[1411],_mm_xor_si64(c2[1226],_mm_xor_si64(c2[145],_mm_xor_si64(c2[149],_mm_xor_si64(c2[1408],_mm_xor_si64(c2[1422],_mm_xor_si64(c2[1246],_mm_xor_si64(c2[522],_mm_xor_si64(c2[346],_mm_xor_si64(c2[1425],_mm_xor_si64(c2[1429],c2[1249])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 38
d2[342]=_mm_xor_si64(c2[720],_mm_xor_si64(c2[540],_mm_xor_si64(c2[542],_mm_xor_si64(c2[1262],_mm_xor_si64(c2[561],_mm_xor_si64(c2[381],_mm_xor_si64(c2[382],_mm_xor_si64(c2[24],_mm_xor_si64(c2[198],_mm_xor_si64(c2[1122],_mm_xor_si64(c2[942],_mm_xor_si64(c2[222],_mm_xor_si64(c2[778],_mm_xor_si64(c2[598],_mm_xor_si64(c2[1136],_mm_xor_si64(c2[776],_mm_xor_si64(c2[76],_mm_xor_si64(c2[1156],_mm_xor_si64(c2[1154],_mm_xor_si64(c2[458],_mm_xor_si64(c2[810],_mm_xor_si64(c2[1178],_mm_xor_si64(c2[833],_mm_xor_si64(c2[653],_mm_xor_si64(c2[829],_mm_xor_si64(c2[288],_mm_xor_si64(c2[489],_mm_xor_si64(c2[312],_mm_xor_si64(c2[1052],_mm_xor_si64(c2[1408],_mm_xor_si64(c2[151],_mm_xor_si64(c2[169],_mm_xor_si64(c2[1428],_mm_xor_si64(c2[528],c2[1422]))))))))))))))))))))))))))))))))));
//row: 39
d2[351]=_mm_xor_si64(c2[180],_mm_xor_si64(c2[0],_mm_xor_si64(c2[182],_mm_xor_si64(c2[2],_mm_xor_si64(c2[722],_mm_xor_si64(c2[1265],_mm_xor_si64(c2[21],_mm_xor_si64(c2[1280],_mm_xor_si64(c2[1281],_mm_xor_si64(c2[923],_mm_xor_si64(c2[582],_mm_xor_si64(c2[402],_mm_xor_si64(c2[1121],_mm_xor_si64(c2[238],_mm_xor_si64(c2[58],_mm_xor_si64(c2[776],_mm_xor_si64(c2[596],_mm_xor_si64(c2[236],_mm_xor_si64(c2[1155],_mm_xor_si64(c2[975],_mm_xor_si64(c2[616],_mm_xor_si64(c2[614],_mm_xor_si64(c2[98],_mm_xor_si64(c2[1357],_mm_xor_si64(c2[270],_mm_xor_si64(c2[293],_mm_xor_si64(c2[113],_mm_xor_si64(c2[469],_mm_xor_si64(c2[289],_mm_xor_si64(c2[1196],_mm_xor_si64(c2[129],_mm_xor_si64(c2[1388],_mm_xor_si64(c2[1211],_mm_xor_si64(c2[130],_mm_xor_si64(c2[692],_mm_xor_si64(c2[512],_mm_xor_si64(c2[868],_mm_xor_si64(c2[1050],_mm_xor_si64(c2[1068],_mm_xor_si64(c2[888],_mm_xor_si64(c2[168],_mm_xor_si64(c2[1427],c2[882]))))))))))))))))))))))))))))))))))))))))));
//row: 40
d2[360]=_mm_xor_si64(c2[540],_mm_xor_si64(c2[4],_mm_xor_si64(c2[542],_mm_xor_si64(c2[6],_mm_xor_si64(c2[1262],_mm_xor_si64(c2[726],_mm_xor_si64(c2[381],_mm_xor_si64(c2[1284],_mm_xor_si64(c2[382],_mm_xor_si64(c2[1285],_mm_xor_si64(c2[24],_mm_xor_si64(c2[1098],_mm_xor_si64(c2[918],_mm_xor_si64(c2[942],_mm_xor_si64(c2[397],_mm_xor_si64(c2[222],_mm_xor_si64(c2[1296],_mm_xor_si64(c2[1116],_mm_xor_si64(c2[1116],_mm_xor_si64(c2[598],_mm_xor_si64(c2[62],_mm_xor_si64(c2[1136],_mm_xor_si64(c2[600],_mm_xor_si64(c2[776],_mm_xor_si64(c2[240],_mm_xor_si64(c2[76],_mm_xor_si64(c2[979],_mm_xor_si64(c2[1156],_mm_xor_si64(c2[620],_mm_xor_si64(c2[1154],_mm_xor_si64(c2[798],_mm_xor_si64(c2[618],_mm_xor_si64(c2[458],_mm_xor_si64(c2[1352],_mm_xor_si64(c2[810],_mm_xor_si64(c2[454],_mm_xor_si64(c2[274],_mm_xor_si64(c2[653],_mm_xor_si64(c2[108],_mm_xor_si64(c2[829],_mm_xor_si64(c2[293],_mm_xor_si64(c2[288],_mm_xor_si64(c2[1371],_mm_xor_si64(c2[1191],_mm_xor_si64(c2[489],_mm_xor_si64(c2[1392],_mm_xor_si64(c2[312],_mm_xor_si64(c2[1386],_mm_xor_si64(c2[1206],_mm_xor_si64(c2[1052],_mm_xor_si64(c2[507],_mm_xor_si64(c2[1408],_mm_xor_si64(c2[872],_mm_xor_si64(c2[151],_mm_xor_si64(c2[1225],_mm_xor_si64(c2[1045],_mm_xor_si64(c2[1428],_mm_xor_si64(c2[883],_mm_xor_si64(c2[528],_mm_xor_si64(c2[1422],_mm_xor_si64(c2[1422],_mm_xor_si64(c2[1066],c2[886]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 41
d2[369]=_mm_xor_si64(c2[1082],_mm_xor_si64(c2[902],_mm_xor_si64(c2[904],_mm_xor_si64(c2[185],_mm_xor_si64(c2[923],_mm_xor_si64(c2[743],_mm_xor_si64(c2[744],_mm_xor_si64(c2[386],_mm_xor_si64(c2[24],_mm_xor_si64(c2[36],_mm_xor_si64(c2[1304],_mm_xor_si64(c2[584],_mm_xor_si64(c2[1140],_mm_xor_si64(c2[960],_mm_xor_si64(c2[59],_mm_xor_si64(c2[1138],_mm_xor_si64(c2[438],_mm_xor_si64(c2[79],_mm_xor_si64(c2[77],_mm_xor_si64(c2[811],_mm_xor_si64(c2[1172],_mm_xor_si64(c2[1355],_mm_xor_si64(c2[1195],_mm_xor_si64(c2[1015],_mm_xor_si64(c2[1191],_mm_xor_si64(c2[650],_mm_xor_si64(c2[851],_mm_xor_si64(c2[674],_mm_xor_si64(c2[1405],_mm_xor_si64(c2[331],_mm_xor_si64(c2[504],_mm_xor_si64(c2[522],_mm_xor_si64(c2[342],_mm_xor_si64(c2[890],c2[345]))))))))))))))))))))))))))))))))));
}
}