ldpc_BG2_Zc88_byte.c 33.1 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
#include "PHY/sse_intrin.h"
// generated code for Zc=88, byte encoding
static inline void ldpc_BG2_Zc88_byte(uint8_t *c,uint8_t *d) {
  __m64 *csimd=(__m64 *)c,*dsimd=(__m64 *)d;

  __m64 *c2,*d2;

  int i2;
  for (i2=0; i2<11; i2++) {
     c2=&csimd[i2];
     d2=&dsimd[i2];

//row: 0
     d2[0]=_mm_xor_si64(c2[668],_mm_xor_si64(c2[2],_mm_xor_si64(c2[221],_mm_xor_si64(c2[1348],_mm_xor_si64(c2[1571],_mm_xor_si64(c2[908],_mm_xor_si64(c2[1145],_mm_xor_si64(c2[1154],_mm_xor_si64(c2[506],_mm_xor_si64(c2[74],_mm_xor_si64(c2[508],_mm_xor_si64(c2[1415],_mm_xor_si64(c2[318],_mm_xor_si64(c2[1198],_mm_xor_si64(c2[110],_mm_xor_si64(c2[1434],_mm_xor_si64(c2[1676],_mm_xor_si64(c2[1458],_mm_xor_si64(c2[134],_mm_xor_si64(c2[1038],_mm_xor_si64(c2[154],_mm_xor_si64(c2[626],_mm_xor_si64(c2[1282],_mm_xor_si64(c2[178],_mm_xor_si64(c2[642],_mm_xor_si64(c2[1083],c2[200]))))))))))))))))))))))))));

//row: 1
     d2[11]=_mm_xor_si64(c2[888],_mm_xor_si64(c2[668],_mm_xor_si64(c2[2],_mm_xor_si64(c2[221],_mm_xor_si64(c2[1568],_mm_xor_si64(c2[1348],_mm_xor_si64(c2[1571],_mm_xor_si64(c2[908],_mm_xor_si64(c2[1365],_mm_xor_si64(c2[1145],_mm_xor_si64(c2[1154],_mm_xor_si64(c2[726],_mm_xor_si64(c2[506],_mm_xor_si64(c2[74],_mm_xor_si64(c2[508],_mm_xor_si64(c2[1415],_mm_xor_si64(c2[318],_mm_xor_si64(c2[1198],_mm_xor_si64(c2[110],_mm_xor_si64(c2[1434],_mm_xor_si64(c2[137],_mm_xor_si64(c2[1676],_mm_xor_si64(c2[1458],_mm_xor_si64(c2[134],_mm_xor_si64(c2[1038],_mm_xor_si64(c2[154],_mm_xor_si64(c2[626],_mm_xor_si64(c2[1282],_mm_xor_si64(c2[178],_mm_xor_si64(c2[862],_mm_xor_si64(c2[642],_mm_xor_si64(c2[1083],c2[200]))))))))))))))))))))))))))))))));

//row: 2
     d2[22]=_mm_xor_si64(c2[888],_mm_xor_si64(c2[668],_mm_xor_si64(c2[222],_mm_xor_si64(c2[2],_mm_xor_si64(c2[221],_mm_xor_si64(c2[1568],_mm_xor_si64(c2[1348],_mm_xor_si64(c2[1571],_mm_xor_si64(c2[908],_mm_xor_si64(c2[1365],_mm_xor_si64(c2[1145],_mm_xor_si64(c2[1154],_mm_xor_si64(c2[726],_mm_xor_si64(c2[506],_mm_xor_si64(c2[294],_mm_xor_si64(c2[74],_mm_xor_si64(c2[508],_mm_xor_si64(c2[1635],_mm_xor_si64(c2[1415],_mm_xor_si64(c2[318],_mm_xor_si64(c2[1198],_mm_xor_si64(c2[330],_mm_xor_si64(c2[110],_mm_xor_si64(c2[1434],_mm_xor_si64(c2[137],_mm_xor_si64(c2[1676],_mm_xor_si64(c2[1678],_mm_xor_si64(c2[1458],_mm_xor_si64(c2[134],_mm_xor_si64(c2[1258],_mm_xor_si64(c2[1038],_mm_xor_si64(c2[154],_mm_xor_si64(c2[846],_mm_xor_si64(c2[626],_mm_xor_si64(c2[1282],_mm_xor_si64(c2[178],_mm_xor_si64(c2[862],_mm_xor_si64(c2[642],_mm_xor_si64(c2[1303],_mm_xor_si64(c2[1083],c2[200]))))))))))))))))))))))))))))))))))))))));

//row: 3
     d2[33]=_mm_xor_si64(c2[668],_mm_xor_si64(c2[2],_mm_xor_si64(c2[221],_mm_xor_si64(c2[1348],_mm_xor_si64(c2[1571],_mm_xor_si64(c2[1128],_mm_xor_si64(c2[908],_mm_xor_si64(c2[1145],_mm_xor_si64(c2[1374],_mm_xor_si64(c2[1154],_mm_xor_si64(c2[506],_mm_xor_si64(c2[74],_mm_xor_si64(c2[508],_mm_xor_si64(c2[1415],_mm_xor_si64(c2[318],_mm_xor_si64(c2[1418],_mm_xor_si64(c2[1198],_mm_xor_si64(c2[110],_mm_xor_si64(c2[1654],_mm_xor_si64(c2[1434],_mm_xor_si64(c2[1676],_mm_xor_si64(c2[1458],_mm_xor_si64(c2[354],_mm_xor_si64(c2[134],_mm_xor_si64(c2[1038],_mm_xor_si64(c2[374],_mm_xor_si64(c2[154],_mm_xor_si64(c2[626],_mm_xor_si64(c2[1282],_mm_xor_si64(c2[398],_mm_xor_si64(c2[178],_mm_xor_si64(c2[642],_mm_xor_si64(c2[1083],_mm_xor_si64(c2[420],c2[200]))))))))))))))))))))))))))))))))));

//row: 4
     d2[44]=_mm_xor_si64(c2[1547],_mm_xor_si64(c2[1327],_mm_xor_si64(c2[661],_mm_xor_si64(c2[880],_mm_xor_si64(c2[1330],_mm_xor_si64(c2[468],_mm_xor_si64(c2[248],_mm_xor_si64(c2[471],_mm_xor_si64(c2[1567],_mm_xor_si64(c2[690],_mm_xor_si64(c2[265],_mm_xor_si64(c2[45],_mm_xor_si64(c2[54],_mm_xor_si64(c2[1396],_mm_xor_si64(c2[1176],_mm_xor_si64(c2[733],_mm_xor_si64(c2[1167],_mm_xor_si64(c2[315],_mm_xor_si64(c2[977],_mm_xor_si64(c2[98],_mm_xor_si64(c2[780],_mm_xor_si64(c2[334],_mm_xor_si64(c2[796],_mm_xor_si64(c2[576],_mm_xor_si64(c2[358],_mm_xor_si64(c2[793],_mm_xor_si64(c2[1697],_mm_xor_si64(c2[824],_mm_xor_si64(c2[1285],_mm_xor_si64(c2[182],_mm_xor_si64(c2[837],_mm_xor_si64(c2[1521],_mm_xor_si64(c2[1301],_mm_xor_si64(c2[1742],c2[859]))))))))))))))))))))))))))))))))));

//row: 5
     d2[55]=_mm_xor_si64(c2[5],_mm_xor_si64(c2[1544],_mm_xor_si64(c2[889],_mm_xor_si64(c2[1108],_mm_xor_si64(c2[1549],_mm_xor_si64(c2[685],_mm_xor_si64(c2[465],_mm_xor_si64(c2[688],_mm_xor_si64(c2[25],_mm_xor_si64(c2[912],_mm_xor_si64(c2[493],_mm_xor_si64(c2[273],_mm_xor_si64(c2[271],_mm_xor_si64(c2[1613],_mm_xor_si64(c2[1393],_mm_xor_si64(c2[950],_mm_xor_si64(c2[1395],_mm_xor_si64(c2[532],_mm_xor_si64(c2[1194],_mm_xor_si64(c2[315],_mm_xor_si64(c2[997],_mm_xor_si64(c2[551],_mm_xor_si64(c2[774],_mm_xor_si64(c2[1013],_mm_xor_si64(c2[793],_mm_xor_si64(c2[575],_mm_xor_si64(c2[1021],_mm_xor_si64(c2[155],_mm_xor_si64(c2[1041],_mm_xor_si64(c2[1695],_mm_xor_si64(c2[1502],_mm_xor_si64(c2[399],_mm_xor_si64(c2[1065],_mm_xor_si64(c2[1738],_mm_xor_si64(c2[1518],_mm_xor_si64(c2[200],c2[1087]))))))))))))))))))))))))))))))))))));

//row: 6
     d2[66]=_mm_xor_si64(c2[221],_mm_xor_si64(c2[1],_mm_xor_si64(c2[1105],_mm_xor_si64(c2[1324],_mm_xor_si64(c2[1545],_mm_xor_si64(c2[912],_mm_xor_si64(c2[692],_mm_xor_si64(c2[904],_mm_xor_si64(c2[252],_mm_xor_si64(c2[709],_mm_xor_si64(c2[489],_mm_xor_si64(c2[487],_mm_xor_si64(c2[70],_mm_xor_si64(c2[1609],_mm_xor_si64(c2[1166],_mm_xor_si64(c2[1611],_mm_xor_si64(c2[748],_mm_xor_si64(c2[1410],_mm_xor_si64(c2[531],_mm_xor_si64(c2[1213],_mm_xor_si64(c2[778],_mm_xor_si64(c2[558],_mm_xor_si64(c2[1240],_mm_xor_si64(c2[1020],_mm_xor_si64(c2[802],_mm_xor_si64(c2[1237],_mm_xor_si64(c2[382],_mm_xor_si64(c2[1257],_mm_xor_si64(c2[595],_mm_xor_si64(c2[1718],_mm_xor_si64(c2[626],_mm_xor_si64(c2[1281],_mm_xor_si64(c2[206],_mm_xor_si64(c2[1745],_mm_xor_si64(c2[427],_mm_xor_si64(c2[1303],c2[866]))))))))))))))))))))))))))))))))))));

//row: 7
     d2[77]=_mm_xor_si64(c2[663],_mm_xor_si64(c2[443],_mm_xor_si64(c2[444],_mm_xor_si64(c2[1547],_mm_xor_si64(c2[1548],_mm_xor_si64(c2[7],_mm_xor_si64(c2[8],_mm_xor_si64(c2[1343],_mm_xor_si64(c2[1123],_mm_xor_si64(c2[1124],_mm_xor_si64(c2[1346],_mm_xor_si64(c2[1347],_mm_xor_si64(c2[683],_mm_xor_si64(c2[904],_mm_xor_si64(c2[684],_mm_xor_si64(c2[28],_mm_xor_si64(c2[1151],_mm_xor_si64(c2[931],_mm_xor_si64(c2[932],_mm_xor_si64(c2[929],_mm_xor_si64(c2[1150],_mm_xor_si64(c2[930],_mm_xor_si64(c2[512],_mm_xor_si64(c2[292],_mm_xor_si64(c2[293],_mm_xor_si64(c2[1608],_mm_xor_si64(c2[1609],_mm_xor_si64(c2[294],_mm_xor_si64(c2[295],_mm_xor_si64(c2[1190],_mm_xor_si64(c2[1191],_mm_xor_si64(c2[93],_mm_xor_si64(c2[94],_mm_xor_si64(c2[973],_mm_xor_si64(c2[1194],_mm_xor_si64(c2[974],_mm_xor_si64(c2[1655],_mm_xor_si64(c2[1656],_mm_xor_si64(c2[1220],_mm_xor_si64(c2[1430],_mm_xor_si64(c2[1210],_mm_xor_si64(c2[1214],_mm_xor_si64(c2[1682],_mm_xor_si64(c2[1462],_mm_xor_si64(c2[1452],_mm_xor_si64(c2[1233],_mm_xor_si64(c2[1234],_mm_xor_si64(c2[1679],_mm_xor_si64(c2[141],_mm_xor_si64(c2[1680],_mm_xor_si64(c2[824],_mm_xor_si64(c2[814],_mm_xor_si64(c2[1699],_mm_xor_si64(c2[161],_mm_xor_si64(c2[1700],_mm_xor_si64(c2[157],_mm_xor_si64(c2[401],_mm_xor_si64(c2[402],_mm_xor_si64(c2[1057],_mm_xor_si64(c2[1058],_mm_xor_si64(c2[1723],_mm_xor_si64(c2[185],_mm_xor_si64(c2[1724],_mm_xor_si64(c2[648],_mm_xor_si64(c2[428],_mm_xor_si64(c2[418],_mm_xor_si64(c2[858],_mm_xor_si64(c2[859],_mm_xor_si64(c2[1745],_mm_xor_si64(c2[207],c2[1746]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));

//row: 8
     d2[88]=_mm_xor_si64(c2[1106],_mm_xor_si64(c2[886],_mm_xor_si64(c2[440],_mm_xor_si64(c2[220],_mm_xor_si64(c2[450],_mm_xor_si64(c2[1106],_mm_xor_si64(c2[27],_mm_xor_si64(c2[1566],_mm_xor_si64(c2[30],_mm_xor_si64(c2[1126],_mm_xor_si64(c2[1565],_mm_xor_si64(c2[1594],_mm_xor_si64(c2[1374],_mm_xor_si64(c2[1372],_mm_xor_si64(c2[955],_mm_xor_si64(c2[735],_mm_xor_si64(c2[512],_mm_xor_si64(c2[292],_mm_xor_si64(c2[726],_mm_xor_si64(c2[94],_mm_xor_si64(c2[1633],_mm_xor_si64(c2[536],_mm_xor_si64(c2[1416],_mm_xor_si64(c2[559],_mm_xor_si64(c2[339],_mm_xor_si64(c2[1652],_mm_xor_si64(c2[355],_mm_xor_si64(c2[135],_mm_xor_si64(c2[137],_mm_xor_si64(c2[1676],_mm_xor_si64(c2[352],_mm_xor_si64(c2[1476],_mm_xor_si64(c2[1256],_mm_xor_si64(c2[383],_mm_xor_si64(c2[1064],_mm_xor_si64(c2[844],_mm_xor_si64(c2[1500],_mm_xor_si64(c2[396],_mm_xor_si64(c2[1080],_mm_xor_si64(c2[860],_mm_xor_si64(c2[1521],_mm_xor_si64(c2[1301],c2[418]))))))))))))))))))))))))))))))))))))))))));

//row: 9
     d2[99]=_mm_xor_si64(c2[1329],_mm_xor_si64(c2[885],_mm_xor_si64(c2[665],_mm_xor_si64(c2[663],_mm_xor_si64(c2[10],_mm_xor_si64(c2[882],_mm_xor_si64(c2[229],_mm_xor_si64(c2[250],_mm_xor_si64(c2[1565],_mm_xor_si64(c2[1345],_mm_xor_si64(c2[462],_mm_xor_si64(c2[1568],_mm_xor_si64(c2[1569],_mm_xor_si64(c2[905],_mm_xor_si64(c2[24],_mm_xor_si64(c2[47],_mm_xor_si64(c2[1373],_mm_xor_si64(c2[1153],_mm_xor_si64(c2[45],_mm_xor_si64(c2[1151],_mm_xor_si64(c2[1167],_mm_xor_si64(c2[734],_mm_xor_si64(c2[514],_mm_xor_si64(c2[735],_mm_xor_si64(c2[71],_mm_xor_si64(c2[1169],_mm_xor_si64(c2[516],_mm_xor_si64(c2[317],_mm_xor_si64(c2[1412],_mm_xor_si64(c2[968],_mm_xor_si64(c2[315],_mm_xor_si64(c2[89],_mm_xor_si64(c2[1195],_mm_xor_si64(c2[771],_mm_xor_si64(c2[118],_mm_xor_si64(c2[336],_mm_xor_si64(c2[1431],_mm_xor_si64(c2[578],_mm_xor_si64(c2[134],_mm_xor_si64(c2[1673],_mm_xor_si64(c2[360],_mm_xor_si64(c2[1455],_mm_xor_si64(c2[795],_mm_xor_si64(c2[142],_mm_xor_si64(c2[1699],_mm_xor_si64(c2[1035],_mm_xor_si64(c2[815],_mm_xor_si64(c2[162],_mm_xor_si64(c2[1276],_mm_xor_si64(c2[623],_mm_xor_si64(c2[184],_mm_xor_si64(c2[1279],_mm_xor_si64(c2[839],_mm_xor_si64(c2[186],_mm_xor_si64(c2[1502],_mm_xor_si64(c2[1303],_mm_xor_si64(c2[859],_mm_xor_si64(c2[639],_mm_xor_si64(c2[1744],_mm_xor_si64(c2[1080],_mm_xor_si64(c2[861],c2[208])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));

//row: 10
     d2[110]=_mm_xor_si64(c2[1542],_mm_xor_si64(c2[245],_mm_xor_si64(c2[1462],c2[1696])));

//row: 11
     d2[121]=_mm_xor_si64(c2[4],_mm_xor_si64(c2[1108],_mm_xor_si64(c2[1327],_mm_xor_si64(c2[660],_mm_xor_si64(c2[684],_mm_xor_si64(c2[907],_mm_xor_si64(c2[464],_mm_xor_si64(c2[244],_mm_xor_si64(c2[492],_mm_xor_si64(c2[710],_mm_xor_si64(c2[490],_mm_xor_si64(c2[1612],_mm_xor_si64(c2[1169],_mm_xor_si64(c2[1614],_mm_xor_si64(c2[751],_mm_xor_si64(c2[1413],_mm_xor_si64(c2[754],_mm_xor_si64(c2[534],_mm_xor_si64(c2[1216],_mm_xor_si64(c2[990],_mm_xor_si64(c2[770],_mm_xor_si64(c2[1012],_mm_xor_si64(c2[794],_mm_xor_si64(c2[1460],_mm_xor_si64(c2[1240],_mm_xor_si64(c2[374],_mm_xor_si64(c2[1480],_mm_xor_si64(c2[1260],_mm_xor_si64(c2[1704],_mm_xor_si64(c2[1721],_mm_xor_si64(c2[618],_mm_xor_si64(c2[1504],_mm_xor_si64(c2[1284],_mm_xor_si64(c2[1748],_mm_xor_si64(c2[419],_mm_xor_si64(c2[1526],_mm_xor_si64(c2[1306],c2[201])))))))))))))))))))))))))))))))))))));

//row: 12
     d2[132]=_mm_xor_si64(c2[9],_mm_xor_si64(c2[1548],_mm_xor_si64(c2[882],_mm_xor_si64(c2[1101],_mm_xor_si64(c2[689],_mm_xor_si64(c2[469],_mm_xor_si64(c2[692],_mm_xor_si64(c2[29],_mm_xor_si64(c2[466],_mm_xor_si64(c2[486],_mm_xor_si64(c2[266],_mm_xor_si64(c2[264],_mm_xor_si64(c2[1606],_mm_xor_si64(c2[1386],_mm_xor_si64(c2[954],_mm_xor_si64(c2[1388],_mm_xor_si64(c2[727],_mm_xor_si64(c2[536],_mm_xor_si64(c2[1198],_mm_xor_si64(c2[308],_mm_xor_si64(c2[990],_mm_xor_si64(c2[555],_mm_xor_si64(c2[1017],_mm_xor_si64(c2[797],_mm_xor_si64(c2[579],_mm_xor_si64(c2[1014],_mm_xor_si64(c2[159],_mm_xor_si64(c2[1034],_mm_xor_si64(c2[1506],_mm_xor_si64(c2[403],_mm_xor_si64(c2[1058],_mm_xor_si64(c2[1742],_mm_xor_si64(c2[1522],_mm_xor_si64(c2[204],c2[1080]))))))))))))))))))))))))))))))))));

//row: 13
     d2[143]=_mm_xor_si64(c2[442],_mm_xor_si64(c2[1546],_mm_xor_si64(c2[6],_mm_xor_si64(c2[1103],_mm_xor_si64(c2[1122],_mm_xor_si64(c2[1345],_mm_xor_si64(c2[902],_mm_xor_si64(c2[682],_mm_xor_si64(c2[682],_mm_xor_si64(c2[930],_mm_xor_si64(c2[1148],_mm_xor_si64(c2[928],_mm_xor_si64(c2[291],_mm_xor_si64(c2[1607],_mm_xor_si64(c2[293],_mm_xor_si64(c2[1189],_mm_xor_si64(c2[92],_mm_xor_si64(c2[1192],_mm_xor_si64(c2[972],_mm_xor_si64(c2[1654],_mm_xor_si64(c2[1439],_mm_xor_si64(c2[1219],_mm_xor_si64(c2[1461],_mm_xor_si64(c2[1232],_mm_xor_si64(c2[139],_mm_xor_si64(c2[1678],_mm_xor_si64(c2[823],_mm_xor_si64(c2[159],_mm_xor_si64(c2[1698],_mm_xor_si64(c2[400],_mm_xor_si64(c2[1056],_mm_xor_si64(c2[183],_mm_xor_si64(c2[1722],_mm_xor_si64(c2[839],_mm_xor_si64(c2[427],_mm_xor_si64(c2[868],_mm_xor_si64(c2[205],c2[1744])))))))))))))))))))))))))))))))))))));

//row: 14
     d2[154]=_mm_xor_si64(c2[889],_mm_xor_si64(c2[669],_mm_xor_si64(c2[227],_mm_xor_si64(c2[3],_mm_xor_si64(c2[1320],_mm_xor_si64(c2[222],_mm_xor_si64(c2[1550],_mm_xor_si64(c2[1569],_mm_xor_si64(c2[1349],_mm_xor_si64(c2[907],_mm_xor_si64(c2[1572],_mm_xor_si64(c2[1130],_mm_xor_si64(c2[909],_mm_xor_si64(c2[687],_mm_xor_si64(c2[467],_mm_xor_si64(c2[683],_mm_xor_si64(c2[1366],_mm_xor_si64(c2[1146],_mm_xor_si64(c2[704],_mm_xor_si64(c2[1144],_mm_xor_si64(c2[933],_mm_xor_si64(c2[713],_mm_xor_si64(c2[727],_mm_xor_si64(c2[507],_mm_xor_si64(c2[76],_mm_xor_si64(c2[75],_mm_xor_si64(c2[1392],_mm_xor_si64(c2[509],_mm_xor_si64(c2[67],_mm_xor_si64(c2[1416],_mm_xor_si64(c2[974],_mm_xor_si64(c2[308],_mm_xor_si64(c2[1636],_mm_xor_si64(c2[1188],_mm_xor_si64(c2[977],_mm_xor_si64(c2[757],_mm_xor_si64(c2[111],_mm_xor_si64(c2[1439],_mm_xor_si64(c2[1435],_mm_xor_si64(c2[1213],_mm_xor_si64(c2[993],_mm_xor_si64(c2[138],_mm_xor_si64(c2[1677],_mm_xor_si64(c2[1235],_mm_xor_si64(c2[1459],_mm_xor_si64(c2[1017],_mm_xor_si64(c2[135],_mm_xor_si64(c2[1672],_mm_xor_si64(c2[1452],_mm_xor_si64(c2[359],_mm_xor_si64(c2[1039],_mm_xor_si64(c2[597],_mm_xor_si64(c2[155],_mm_xor_si64(c2[1703],_mm_xor_si64(c2[1483],_mm_xor_si64(c2[616],_mm_xor_si64(c2[185],_mm_xor_si64(c2[1283],_mm_xor_si64(c2[841],_mm_xor_si64(c2[179],_mm_xor_si64(c2[1716],_mm_xor_si64(c2[1496],_mm_xor_si64(c2[863],_mm_xor_si64(c2[643],_mm_xor_si64(c2[201],_mm_xor_si64(c2[1084],_mm_xor_si64(c2[642],_mm_xor_si64(c2[201],_mm_xor_si64(c2[1738],c2[1518])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));

//row: 15
     d2[165]=_mm_xor_si64(c2[450],_mm_xor_si64(c2[882],_mm_xor_si64(c2[662],_mm_xor_si64(c2[1543],_mm_xor_si64(c2[7],_mm_xor_si64(c2[3],_mm_xor_si64(c2[226],_mm_xor_si64(c2[226],_mm_xor_si64(c2[1130],_mm_xor_si64(c2[1562],_mm_xor_si64(c2[1342],_mm_xor_si64(c2[1342],_mm_xor_si64(c2[1565],_mm_xor_si64(c2[690],_mm_xor_si64(c2[902],_mm_xor_si64(c2[927],_mm_xor_si64(c2[1370],_mm_xor_si64(c2[1150],_mm_xor_si64(c2[925],_mm_xor_si64(c2[1148],_mm_xor_si64(c2[288],_mm_xor_si64(c2[731],_mm_xor_si64(c2[511],_mm_xor_si64(c2[1615],_mm_xor_si64(c2[68],_mm_xor_si64(c2[290],_mm_xor_si64(c2[513],_mm_xor_si64(c2[1197],_mm_xor_si64(c2[1409],_mm_xor_si64(c2[89],_mm_xor_si64(c2[312],_mm_xor_si64(c2[969],_mm_xor_si64(c2[1192],_mm_xor_si64(c2[1651],_mm_xor_si64(c2[115],_mm_xor_si64(c2[1216],_mm_xor_si64(c2[1439],_mm_xor_si64(c2[1458],_mm_xor_si64(c2[142],_mm_xor_si64(c2[1681],_mm_xor_si64(c2[1240],_mm_xor_si64(c2[1452],_mm_xor_si64(c2[1675],_mm_xor_si64(c2[139],_mm_xor_si64(c2[820],_mm_xor_si64(c2[1043],_mm_xor_si64(c2[1695],_mm_xor_si64(c2[159],_mm_xor_si64(c2[397],_mm_xor_si64(c2[620],_mm_xor_si64(c2[1064],_mm_xor_si64(c2[1276],_mm_xor_si64(c2[1719],_mm_xor_si64(c2[183],_mm_xor_si64(c2[424],_mm_xor_si64(c2[867],_mm_xor_si64(c2[647],_mm_xor_si64(c2[865],_mm_xor_si64(c2[1088],_mm_xor_si64(c2[1741],c2[205]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));

//row: 16
     d2[176]=_mm_xor_si64(c2[1110],_mm_xor_si64(c2[890],_mm_xor_si64(c2[227],_mm_xor_si64(c2[7],_mm_xor_si64(c2[224],_mm_xor_si64(c2[1320],_mm_xor_si64(c2[1100],_mm_xor_si64(c2[443],_mm_xor_si64(c2[1330],_mm_xor_si64(c2[31],_mm_xor_si64(c2[1570],_mm_xor_si64(c2[907],_mm_xor_si64(c2[687],_mm_xor_si64(c2[23],_mm_xor_si64(c2[910],_mm_xor_si64(c2[1130],_mm_xor_si64(c2[247],_mm_xor_si64(c2[1351],_mm_xor_si64(c2[1587],_mm_xor_si64(c2[1367],_mm_xor_si64(c2[704],_mm_xor_si64(c2[484],_mm_xor_si64(c2[1365],_mm_xor_si64(c2[493],_mm_xor_si64(c2[948],_mm_xor_si64(c2[728],_mm_xor_si64(c2[76],_mm_xor_si64(c2[1615],_mm_xor_si64(c2[296],_mm_xor_si64(c2[1392],_mm_xor_si64(c2[1172],_mm_xor_si64(c2[730],_mm_xor_si64(c2[1606],_mm_xor_si64(c2[1637],_mm_xor_si64(c2[974],_mm_xor_si64(c2[754],_mm_xor_si64(c2[529],_mm_xor_si64(c2[1416],_mm_xor_si64(c2[1409],_mm_xor_si64(c2[537],_mm_xor_si64(c2[332],_mm_xor_si64(c2[1439],_mm_xor_si64(c2[1219],_mm_xor_si64(c2[1656],_mm_xor_si64(c2[773],_mm_xor_si64(c2[359],_mm_xor_si64(c2[139],_mm_xor_si64(c2[1235],_mm_xor_si64(c2[1015],_mm_xor_si64(c2[1680],_mm_xor_si64(c2[1017],_mm_xor_si64(c2[797],_mm_xor_si64(c2[356],_mm_xor_si64(c2[1232],_mm_xor_si64(c2[1260],_mm_xor_si64(c2[597],_mm_xor_si64(c2[377],_mm_xor_si64(c2[376],_mm_xor_si64(c2[1263],_mm_xor_si64(c2[837],_mm_xor_si64(c2[185],_mm_xor_si64(c2[1724],_mm_xor_si64(c2[1504],_mm_xor_si64(c2[621],_mm_xor_si64(c2[400],_mm_xor_si64(c2[1276],_mm_xor_si64(c2[1084],_mm_xor_si64(c2[864],_mm_xor_si64(c2[201],_mm_xor_si64(c2[1740],_mm_xor_si64(c2[1305],_mm_xor_si64(c2[642],_mm_xor_si64(c2[422],_mm_xor_si64(c2[422],_mm_xor_si64(c2[1298],c2[1526])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));

//row: 17
     d2[187]=_mm_xor_si64(c2[445],_mm_xor_si64(c2[225],_mm_xor_si64(c2[1546],_mm_xor_si64(c2[1326],_mm_xor_si64(c2[1329],_mm_xor_si64(c2[880],_mm_xor_si64(c2[660],_mm_xor_si64(c2[1548],_mm_xor_si64(c2[890],_mm_xor_si64(c2[1125],_mm_xor_si64(c2[905],_mm_xor_si64(c2[467],_mm_xor_si64(c2[247],_mm_xor_si64(c2[1128],_mm_xor_si64(c2[470],_mm_xor_si64(c2[465],_mm_xor_si64(c2[1566],_mm_xor_si64(c2[1347],_mm_xor_si64(c2[933],_mm_xor_si64(c2[713],_mm_xor_si64(c2[264],_mm_xor_si64(c2[44],_mm_xor_si64(c2[711],_mm_xor_si64(c2[53],_mm_xor_si64(c2[294],_mm_xor_si64(c2[74],_mm_xor_si64(c2[1395],_mm_xor_si64(c2[1175],_mm_xor_si64(c2[1390],_mm_xor_si64(c2[952],_mm_xor_si64(c2[732],_mm_xor_si64(c2[76],_mm_xor_si64(c2[1166],_mm_xor_si64(c2[972],_mm_xor_si64(c2[534],_mm_xor_si64(c2[314],_mm_xor_si64(c2[1634],_mm_xor_si64(c2[976],_mm_xor_si64(c2[755],_mm_xor_si64(c2[97],_mm_xor_si64(c2[1437],_mm_xor_si64(c2[999],_mm_xor_si64(c2[779],_mm_xor_si64(c2[991],_mm_xor_si64(c2[333],_mm_xor_si64(c2[1652],_mm_xor_si64(c2[1453],_mm_xor_si64(c2[1233],_mm_xor_si64(c2[795],_mm_xor_si64(c2[575],_mm_xor_si64(c2[1015],_mm_xor_si64(c2[577],_mm_xor_si64(c2[357],_mm_xor_si64(c2[1461],_mm_xor_si64(c2[792],_mm_xor_si64(c2[595],_mm_xor_si64(c2[157],_mm_xor_si64(c2[1696],_mm_xor_si64(c2[1481],_mm_xor_si64(c2[823],_mm_xor_si64(c2[183],_mm_xor_si64(c2[1504],_mm_xor_si64(c2[1284],_mm_xor_si64(c2[839],_mm_xor_si64(c2[181],_mm_xor_si64(c2[1505],_mm_xor_si64(c2[836],_mm_xor_si64(c2[419],_mm_xor_si64(c2[199],_mm_xor_si64(c2[1520],_mm_xor_si64(c2[1300],_mm_xor_si64(c2[640],_mm_xor_si64(c2[202],_mm_xor_si64(c2[1741],_mm_xor_si64(c2[1527],c2[858])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));

//row: 18
     d2[198]=_mm_xor_si64(c2[1110],_mm_xor_si64(c2[1675],c2[1476]));

//row: 19
     d2[209]=_mm_xor_si64(c2[884],_mm_xor_si64(c2[229],_mm_xor_si64(c2[448],_mm_xor_si64(c2[1101],_mm_xor_si64(c2[1564],_mm_xor_si64(c2[28],_mm_xor_si64(c2[1124],_mm_xor_si64(c2[1567],_mm_xor_si64(c2[1372],_mm_xor_si64(c2[1370],_mm_xor_si64(c2[733],_mm_xor_si64(c2[290],_mm_xor_si64(c2[735],_mm_xor_si64(c2[1631],_mm_xor_si64(c2[534],_mm_xor_si64(c2[1414],_mm_xor_si64(c2[337],_mm_xor_si64(c2[1650],_mm_xor_si64(c2[133],_mm_xor_si64(c2[1674],_mm_xor_si64(c2[361],_mm_xor_si64(c2[1254],_mm_xor_si64(c2[381],_mm_xor_si64(c2[842],_mm_xor_si64(c2[1498],_mm_xor_si64(c2[405],_mm_xor_si64(c2[858],_mm_xor_si64(c2[1299],c2[427]))))))))))))))))))))))))))));

//row: 20
     d2[220]=_mm_xor_si64(c2[228],_mm_xor_si64(c2[8],_mm_xor_si64(c2[1101],_mm_xor_si64(c2[1320],_mm_xor_si64(c2[908],_mm_xor_si64(c2[688],_mm_xor_si64(c2[911],_mm_xor_si64(c2[248],_mm_xor_si64(c2[27],_mm_xor_si64(c2[705],_mm_xor_si64(c2[485],_mm_xor_si64(c2[494],_mm_xor_si64(c2[66],_mm_xor_si64(c2[1616],_mm_xor_si64(c2[1173],_mm_xor_si64(c2[1607],_mm_xor_si64(c2[755],_mm_xor_si64(c2[1417],_mm_xor_si64(c2[538],_mm_xor_si64(c2[974],_mm_xor_si64(c2[1220],_mm_xor_si64(c2[774],_mm_xor_si64(c2[1236],_mm_xor_si64(c2[1016],_mm_xor_si64(c2[798],_mm_xor_si64(c2[1233],_mm_xor_si64(c2[378],_mm_xor_si64(c2[1264],_mm_xor_si64(c2[1725],_mm_xor_si64(c2[622],_mm_xor_si64(c2[1277],_mm_xor_si64(c2[202],_mm_xor_si64(c2[1741],_mm_xor_si64(c2[423],c2[1299]))))))))))))))))))))))))))))))))));

//row: 21
     d2[231]=_mm_xor_si64(c2[662],_mm_xor_si64(c2[7],_mm_xor_si64(c2[226],_mm_xor_si64(c2[888],_mm_xor_si64(c2[1342],_mm_xor_si64(c2[1565],_mm_xor_si64(c2[1122],_mm_xor_si64(c2[902],_mm_xor_si64(c2[1150],_mm_xor_si64(c2[1368],_mm_xor_si64(c2[1148],_mm_xor_si64(c2[511],_mm_xor_si64(c2[68],_mm_xor_si64(c2[513],_mm_xor_si64(c2[1409],_mm_xor_si64(c2[312],_mm_xor_si64(c2[1412],_mm_xor_si64(c2[1192],_mm_xor_si64(c2[115],_mm_xor_si64(c2[1659],_mm_xor_si64(c2[1439],_mm_xor_si64(c2[1681],_mm_xor_si64(c2[1452],_mm_xor_si64(c2[359],_mm_xor_si64(c2[139],_mm_xor_si64(c2[1043],_mm_xor_si64(c2[379],_mm_xor_si64(c2[159],_mm_xor_si64(c2[620],_mm_xor_si64(c2[1276],_mm_xor_si64(c2[403],_mm_xor_si64(c2[183],_mm_xor_si64(c2[1505],_mm_xor_si64(c2[647],_mm_xor_si64(c2[1088],_mm_xor_si64(c2[425],c2[205]))))))))))))))))))))))))))))))))))));

//row: 22
     d2[242]=_mm_xor_si64(c2[464],c2[713]);

//row: 23
     d2[253]=_mm_xor_si64(c2[1322],_mm_xor_si64(c2[951],c2[1437]));

//row: 24
     d2[264]=_mm_xor_si64(c2[245],_mm_xor_si64(c2[926],c2[1305]));

//row: 25
     d2[275]=_mm_xor_si64(c2[9],c2[116]);

//row: 26
     d2[286]=_mm_xor_si64(c2[224],_mm_xor_si64(c2[4],_mm_xor_si64(c2[884],_mm_xor_si64(c2[1328],_mm_xor_si64(c2[1108],_mm_xor_si64(c2[229],_mm_xor_si64(c2[1327],_mm_xor_si64(c2[448],_mm_xor_si64(c2[904],_mm_xor_si64(c2[684],_mm_xor_si64(c2[1564],_mm_xor_si64(c2[907],_mm_xor_si64(c2[28],_mm_xor_si64(c2[244],_mm_xor_si64(c2[1344],_mm_xor_si64(c2[1124],_mm_xor_si64(c2[712],_mm_xor_si64(c2[492],_mm_xor_si64(c2[1372],_mm_xor_si64(c2[490],_mm_xor_si64(c2[1590],_mm_xor_si64(c2[1370],_mm_xor_si64(c2[928],_mm_xor_si64(c2[73],_mm_xor_si64(c2[1612],_mm_xor_si64(c2[733],_mm_xor_si64(c2[1389],_mm_xor_si64(c2[1169],_mm_xor_si64(c2[290],_mm_xor_si64(c2[1614],_mm_xor_si64(c2[735],_mm_xor_si64(c2[971],_mm_xor_si64(c2[751],_mm_xor_si64(c2[1631],_mm_xor_si64(c2[1413],_mm_xor_si64(c2[534],_mm_xor_si64(c2[534],_mm_xor_si64(c2[1634],_mm_xor_si64(c2[1414],_mm_xor_si64(c2[1436],_mm_xor_si64(c2[1216],_mm_xor_si64(c2[337],_mm_xor_si64(c2[770],_mm_xor_si64(c2[111],_mm_xor_si64(c2[1650],_mm_xor_si64(c2[1232],_mm_xor_si64(c2[1012],_mm_xor_si64(c2[133],_mm_xor_si64(c2[1014],_mm_xor_si64(c2[794],_mm_xor_si64(c2[1674],_mm_xor_si64(c2[1240],_mm_xor_si64(c2[581],_mm_xor_si64(c2[361],_mm_xor_si64(c2[594],_mm_xor_si64(c2[374],_mm_xor_si64(c2[1254],_mm_xor_si64(c2[1260],_mm_xor_si64(c2[601],_mm_xor_si64(c2[381],_mm_xor_si64(c2[1478],_mm_xor_si64(c2[182],_mm_xor_si64(c2[1721],_mm_xor_si64(c2[842],_mm_xor_si64(c2[618],_mm_xor_si64(c2[1498],_mm_xor_si64(c2[1284],_mm_xor_si64(c2[625],_mm_xor_si64(c2[405],_mm_xor_si64(c2[198],_mm_xor_si64(c2[1748],_mm_xor_si64(c2[858],_mm_xor_si64(c2[639],_mm_xor_si64(c2[419],_mm_xor_si64(c2[1299],_mm_xor_si64(c2[1306],_mm_xor_si64(c2[647],c2[427])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));

//row: 27
     d2[297]=_mm_xor_si64(c2[445],c2[134]);

//row: 28
     d2[308]=_mm_xor_si64(c2[30],_mm_xor_si64(c2[47],c2[1217]));

//row: 29
     d2[319]=_mm_xor_si64(c2[666],c2[317]);

//row: 30
     d2[330]=_mm_xor_si64(c2[934],_mm_xor_si64(c2[1220],_mm_xor_si64(c2[1254],c2[1301])));

//row: 31
     d2[341]=_mm_xor_si64(c2[1544],_mm_xor_si64(c2[889],_mm_xor_si64(c2[1108],_mm_xor_si64(c2[465],_mm_xor_si64(c2[688],_mm_xor_si64(c2[245],_mm_xor_si64(c2[25],_mm_xor_si64(c2[1125],_mm_xor_si64(c2[273],_mm_xor_si64(c2[491],_mm_xor_si64(c2[271],_mm_xor_si64(c2[1393],_mm_xor_si64(c2[950],_mm_xor_si64(c2[1395],_mm_xor_si64(c2[532],_mm_xor_si64(c2[1194],_mm_xor_si64(c2[535],_mm_xor_si64(c2[315],_mm_xor_si64(c2[997],_mm_xor_si64(c2[771],_mm_xor_si64(c2[551],_mm_xor_si64(c2[793],_mm_xor_si64(c2[575],_mm_xor_si64(c2[1241],_mm_xor_si64(c2[1021],_mm_xor_si64(c2[155],_mm_xor_si64(c2[1261],_mm_xor_si64(c2[1041],_mm_xor_si64(c2[1502],_mm_xor_si64(c2[399],_mm_xor_si64(c2[1285],_mm_xor_si64(c2[1065],_mm_xor_si64(c2[1518],_mm_xor_si64(c2[200],_mm_xor_si64(c2[1307],c2[1087])))))))))))))))))))))))))))))))))));

//row: 32
     d2[352]=_mm_xor_si64(c2[444],_mm_xor_si64(c2[224],_mm_xor_si64(c2[1548],_mm_xor_si64(c2[1328],_mm_xor_si64(c2[1547],_mm_xor_si64(c2[883],_mm_xor_si64(c2[1124],_mm_xor_si64(c2[904],_mm_xor_si64(c2[1127],_mm_xor_si64(c2[464],_mm_xor_si64(c2[932],_mm_xor_si64(c2[712],_mm_xor_si64(c2[710],_mm_xor_si64(c2[293],_mm_xor_si64(c2[73],_mm_xor_si64(c2[1609],_mm_xor_si64(c2[1389],_mm_xor_si64(c2[75],_mm_xor_si64(c2[1191],_mm_xor_si64(c2[971],_mm_xor_si64(c2[1633],_mm_xor_si64(c2[754],_mm_xor_si64(c2[1656],_mm_xor_si64(c2[1436],_mm_xor_si64(c2[990],_mm_xor_si64(c2[339],_mm_xor_si64(c2[1452],_mm_xor_si64(c2[1232],_mm_xor_si64(c2[1234],_mm_xor_si64(c2[1014],_mm_xor_si64(c2[1460],_mm_xor_si64(c2[814],_mm_xor_si64(c2[594],_mm_xor_si64(c2[1480],_mm_xor_si64(c2[402],_mm_xor_si64(c2[182],_mm_xor_si64(c2[838],_mm_xor_si64(c2[1504],_mm_xor_si64(c2[418],_mm_xor_si64(c2[198],_mm_xor_si64(c2[859],_mm_xor_si64(c2[639],c2[1526]))))))))))))))))))))))))))))))))))))))))));

//row: 33
     d2[363]=_mm_xor_si64(c2[1],_mm_xor_si64(c2[1105],_mm_xor_si64(c2[1324],_mm_xor_si64(c2[692],_mm_xor_si64(c2[904],_mm_xor_si64(c2[252],_mm_xor_si64(c2[489],_mm_xor_si64(c2[487],_mm_xor_si64(c2[266],_mm_xor_si64(c2[1609],_mm_xor_si64(c2[1166],_mm_xor_si64(c2[1611],_mm_xor_si64(c2[748],_mm_xor_si64(c2[1410],_mm_xor_si64(c2[531],_mm_xor_si64(c2[1213],_mm_xor_si64(c2[778],_mm_xor_si64(c2[1020],_mm_xor_si64(c2[802],_mm_xor_si64(c2[1237],_mm_xor_si64(c2[382],_mm_xor_si64(c2[1257],_mm_xor_si64(c2[380],_mm_xor_si64(c2[1718],_mm_xor_si64(c2[626],_mm_xor_si64(c2[1281],_mm_xor_si64(c2[1745],_mm_xor_si64(c2[427],c2[1303]))))))))))))))))))))))))))));

//row: 34
     d2[374]=_mm_xor_si64(c2[1102],_mm_xor_si64(c2[882],_mm_xor_si64(c2[1106],_mm_xor_si64(c2[447],_mm_xor_si64(c2[227],_mm_xor_si64(c2[440],_mm_xor_si64(c2[446],_mm_xor_si64(c2[670],_mm_xor_si64(c2[661],_mm_xor_si64(c2[23],_mm_xor_si64(c2[1562],_mm_xor_si64(c2[27],_mm_xor_si64(c2[26],_mm_xor_si64(c2[250],_mm_xor_si64(c2[1122],_mm_xor_si64(c2[1566],_mm_xor_si64(c2[1346],_mm_xor_si64(c2[1590],_mm_xor_si64(c2[1370],_mm_xor_si64(c2[1594],_mm_xor_si64(c2[1368],_mm_xor_si64(c2[53],_mm_xor_si64(c2[1592],_mm_xor_si64(c2[951],_mm_xor_si64(c2[731],_mm_xor_si64(c2[955],_mm_xor_si64(c2[508],_mm_xor_si64(c2[288],_mm_xor_si64(c2[512],_mm_xor_si64(c2[733],_mm_xor_si64(c2[946],_mm_xor_si64(c2[90],_mm_xor_si64(c2[1629],_mm_xor_si64(c2[94],_mm_xor_si64(c2[532],_mm_xor_si64(c2[756],_mm_xor_si64(c2[1412],_mm_xor_si64(c2[97],_mm_xor_si64(c2[1636],_mm_xor_si64(c2[555],_mm_xor_si64(c2[335],_mm_xor_si64(c2[559],_mm_xor_si64(c2[1659],_mm_xor_si64(c2[333],_mm_xor_si64(c2[113],_mm_xor_si64(c2[362],_mm_xor_si64(c2[142],_mm_xor_si64(c2[355],_mm_xor_si64(c2[133],_mm_xor_si64(c2[1672],_mm_xor_si64(c2[137],_mm_xor_si64(c2[359],_mm_xor_si64(c2[792],_mm_xor_si64(c2[572],_mm_xor_si64(c2[1483],_mm_xor_si64(c2[1263],_mm_xor_si64(c2[1476],_mm_xor_si64(c2[379],_mm_xor_si64(c2[823],_mm_xor_si64(c2[603],_mm_xor_si64(c2[1060],_mm_xor_si64(c2[840],_mm_xor_si64(c2[1064],_mm_xor_si64(c2[1496],_mm_xor_si64(c2[1720],_mm_xor_si64(c2[403],_mm_xor_si64(c2[836],_mm_xor_si64(c2[616],_mm_xor_si64(c2[1087],_mm_xor_si64(c2[867],_mm_xor_si64(c2[1080],_mm_xor_si64(c2[1528],_mm_xor_si64(c2[1308],_mm_xor_si64(c2[1521],_mm_xor_si64(c2[425],_mm_xor_si64(c2[858],c2[638]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));

//row: 35
     d2[385]=_mm_xor_si64(c2[8],_mm_xor_si64(c2[1547],_mm_xor_si64(c2[881],_mm_xor_si64(c2[1100],_mm_xor_si64(c2[688],_mm_xor_si64(c2[468],_mm_xor_si64(c2[691],_mm_xor_si64(c2[28],_mm_xor_si64(c2[1346],_mm_xor_si64(c2[485],_mm_xor_si64(c2[265],_mm_xor_si64(c2[274],_mm_xor_si64(c2[1616],_mm_xor_si64(c2[1396],_mm_xor_si64(c2[953],_mm_xor_si64(c2[1387],_mm_xor_si64(c2[535],_mm_xor_si64(c2[1197],_mm_xor_si64(c2[318],_mm_xor_si64(c2[1000],_mm_xor_si64(c2[554],_mm_xor_si64(c2[118],_mm_xor_si64(c2[1016],_mm_xor_si64(c2[796],_mm_xor_si64(c2[578],_mm_xor_si64(c2[1013],_mm_xor_si64(c2[158],_mm_xor_si64(c2[1044],_mm_xor_si64(c2[1505],_mm_xor_si64(c2[402],_mm_xor_si64(c2[1057],_mm_xor_si64(c2[1741],_mm_xor_si64(c2[1521],_mm_xor_si64(c2[203],c2[1079]))))))))))))))))))))))))))))))))));

//row: 36
     d2[396]=_mm_xor_si64(c2[229],_mm_xor_si64(c2[492],c2[379]));

//row: 37
     d2[407]=_mm_xor_si64(c2[447],_mm_xor_si64(c2[222],_mm_xor_si64(c2[1540],_mm_xor_si64(c2[1326],_mm_xor_si64(c2[0],_mm_xor_si64(c2[1545],_mm_xor_si64(c2[1127],_mm_xor_si64(c2[902],_mm_xor_si64(c2[1350],_mm_xor_si64(c2[1125],_mm_xor_si64(c2[687],_mm_xor_si64(c2[682],_mm_xor_si64(c2[462],_mm_xor_si64(c2[924],_mm_xor_si64(c2[710],_mm_xor_si64(c2[933],_mm_xor_si64(c2[928],_mm_xor_si64(c2[708],_mm_xor_si64(c2[296],_mm_xor_si64(c2[71],_mm_xor_si64(c2[1612],_mm_xor_si64(c2[1387],_mm_xor_si64(c2[287],_mm_xor_si64(c2[73],_mm_xor_si64(c2[1194],_mm_xor_si64(c2[969],_mm_xor_si64(c2[97],_mm_xor_si64(c2[1631],_mm_xor_si64(c2[977],_mm_xor_si64(c2[972],_mm_xor_si64(c2[752],_mm_xor_si64(c2[1659],_mm_xor_si64(c2[1434],_mm_xor_si64(c2[1213],_mm_xor_si64(c2[1219],_mm_xor_si64(c2[999],_mm_xor_si64(c2[1455],_mm_xor_si64(c2[1241],_mm_xor_si64(c2[1237],_mm_xor_si64(c2[1012],_mm_xor_si64(c2[1672],_mm_xor_si64(c2[1678],_mm_xor_si64(c2[1458],_mm_xor_si64(c2[817],_mm_xor_si64(c2[603],_mm_xor_si64(c2[1703],_mm_xor_si64(c2[1698],_mm_xor_si64(c2[1478],_mm_xor_si64(c2[405],_mm_xor_si64(c2[180],_mm_xor_si64(c2[1061],_mm_xor_si64(c2[836],_mm_xor_si64(c2[1716],_mm_xor_si64(c2[1722],_mm_xor_si64(c2[1502],_mm_xor_si64(c2[421],_mm_xor_si64(c2[207],_mm_xor_si64(c2[862],_mm_xor_si64(c2[648],_mm_xor_si64(c2[1738],_mm_xor_si64(c2[1744],c2[1524])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));

//row: 38
     d2[418]=_mm_xor_si64(c2[1550],_mm_xor_si64(c2[1330],_mm_xor_si64(c2[664],_mm_xor_si64(c2[883],_mm_xor_si64(c2[471],_mm_xor_si64(c2[251],_mm_xor_si64(c2[463],_mm_xor_si64(c2[1570],_mm_xor_si64(c2[25],_mm_xor_si64(c2[268],_mm_xor_si64(c2[48],_mm_xor_si64(c2[46],_mm_xor_si64(c2[1388],_mm_xor_si64(c2[1168],_mm_xor_si64(c2[736],_mm_xor_si64(c2[1170],_mm_xor_si64(c2[318],_mm_xor_si64(c2[969],_mm_xor_si64(c2[90],_mm_xor_si64(c2[772],_mm_xor_si64(c2[337],_mm_xor_si64(c2[1650],_mm_xor_si64(c2[799],_mm_xor_si64(c2[579],_mm_xor_si64(c2[361],_mm_xor_si64(c2[796],_mm_xor_si64(c2[1700],_mm_xor_si64(c2[816],_mm_xor_si64(c2[1277],_mm_xor_si64(c2[185],_mm_xor_si64(c2[840],_mm_xor_si64(c2[1524],_mm_xor_si64(c2[1304],_mm_xor_si64(c2[1745],c2[862]))))))))))))))))))))))))))))))))));

//row: 39
     d2[429]=_mm_xor_si64(c2[1110],_mm_xor_si64(c2[890],_mm_xor_si64(c2[444],_mm_xor_si64(c2[224],_mm_xor_si64(c2[443],_mm_xor_si64(c2[1102],_mm_xor_si64(c2[31],_mm_xor_si64(c2[1570],_mm_xor_si64(c2[23],_mm_xor_si64(c2[1130],_mm_xor_si64(c2[1587],_mm_xor_si64(c2[1367],_mm_xor_si64(c2[1365],_mm_xor_si64(c2[948],_mm_xor_si64(c2[728],_mm_xor_si64(c2[516],_mm_xor_si64(c2[296],_mm_xor_si64(c2[730],_mm_xor_si64(c2[98],_mm_xor_si64(c2[1637],_mm_xor_si64(c2[529],_mm_xor_si64(c2[1409],_mm_xor_si64(c2[552],_mm_xor_si64(c2[332],_mm_xor_si64(c2[1656],_mm_xor_si64(c2[359],_mm_xor_si64(c2[139],_mm_xor_si64(c2[141],_mm_xor_si64(c2[1680],_mm_xor_si64(c2[356],_mm_xor_si64(c2[1480],_mm_xor_si64(c2[1260],_mm_xor_si64(c2[376],_mm_xor_si64(c2[1474],_mm_xor_si64(c2[1057],_mm_xor_si64(c2[837],_mm_xor_si64(c2[1504],_mm_xor_si64(c2[400],_mm_xor_si64(c2[1084],_mm_xor_si64(c2[864],_mm_xor_si64(c2[1525],_mm_xor_si64(c2[1305],c2[422]))))))))))))))))))))))))))))))))))))))))));

//row: 40
     d2[440]=_mm_xor_si64(c2[1545],_mm_xor_si64(c2[1107],_mm_xor_si64(c2[890],_mm_xor_si64(c2[441],_mm_xor_si64(c2[1109],_mm_xor_si64(c2[660],_mm_xor_si64(c2[466],_mm_xor_si64(c2[28],_mm_xor_si64(c2[689],_mm_xor_si64(c2[251],_mm_xor_si64(c2[26],_mm_xor_si64(c2[1567],_mm_xor_si64(c2[1347],_mm_xor_si64(c2[274],_mm_xor_si64(c2[1584],_mm_xor_si64(c2[272],_mm_xor_si64(c2[54],_mm_xor_si64(c2[1593],_mm_xor_si64(c2[53],_mm_xor_si64(c2[1394],_mm_xor_si64(c2[956],_mm_xor_si64(c2[951],_mm_xor_si64(c2[513],_mm_xor_si64(c2[1396],_mm_xor_si64(c2[947],_mm_xor_si64(c2[533],_mm_xor_si64(c2[95],_mm_xor_si64(c2[1195],_mm_xor_si64(c2[757],_mm_xor_si64(c2[316],_mm_xor_si64(c2[98],_mm_xor_si64(c2[1637],_mm_xor_si64(c2[998],_mm_xor_si64(c2[560],_mm_xor_si64(c2[552],_mm_xor_si64(c2[334],_mm_xor_si64(c2[114],_mm_xor_si64(c2[794],_mm_xor_si64(c2[356],_mm_xor_si64(c2[576],_mm_xor_si64(c2[138],_mm_xor_si64(c2[1022],_mm_xor_si64(c2[793],_mm_xor_si64(c2[573],_mm_xor_si64(c2[156],_mm_xor_si64(c2[1477],_mm_xor_si64(c2[1042],_mm_xor_si64(c2[824],_mm_xor_si64(c2[604],_mm_xor_si64(c2[1503],_mm_xor_si64(c2[1065],_mm_xor_si64(c2[400],_mm_xor_si64(c2[1721],_mm_xor_si64(c2[1066],_mm_xor_si64(c2[837],_mm_xor_si64(c2[617],_mm_xor_si64(c2[1519],_mm_xor_si64(c2[1081],_mm_xor_si64(c2[201],_mm_xor_si64(c2[1522],_mm_xor_si64(c2[1088],_mm_xor_si64(c2[859],c2[639]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));

//row: 41
     d2[451]=_mm_xor_si64(c2[889],_mm_xor_si64(c2[669],_mm_xor_si64(c2[3],_mm_xor_si64(c2[222],_mm_xor_si64(c2[1569],_mm_xor_si64(c2[1349],_mm_xor_si64(c2[1572],_mm_xor_si64(c2[909],_mm_xor_si64(c2[907],_mm_xor_si64(c2[1366],_mm_xor_si64(c2[1146],_mm_xor_si64(c2[1144],_mm_xor_si64(c2[727],_mm_xor_si64(c2[507],_mm_xor_si64(c2[75],_mm_xor_si64(c2[509],_mm_xor_si64(c2[1416],_mm_xor_si64(c2[308],_mm_xor_si64(c2[1188],_mm_xor_si64(c2[111],_mm_xor_si64(c2[1435],_mm_xor_si64(c2[1430],_mm_xor_si64(c2[138],_mm_xor_si64(c2[1677],_mm_xor_si64(c2[1459],_mm_xor_si64(c2[135],_mm_xor_si64(c2[1039],_mm_xor_si64(c2[155],_mm_xor_si64(c2[616],_mm_xor_si64(c2[1283],_mm_xor_si64(c2[179],_mm_xor_si64(c2[863],_mm_xor_si64(c2[643],_mm_xor_si64(c2[1084],c2[201]))))))))))))))))))))))))))))))))));
  }
}