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=256, byte encoding
static inline void ldpc256_byte(uint8_t *c,uint8_t *d) {
__m256i *csimd=(__m256i *)c,*dsimd=(__m256i *)d;
__m256i *c2,*d2;
int i2;
for (i2=0; i2<8; i2++) {
c2=&csimd[i2];
d2=&dsimd[i2];
//row: 0
d2[0]=_mm256_xor_si256(c2[9159],_mm256_xor_si256(c2[704],_mm256_xor_si256(c2[3523],_mm256_xor_si256(c2[8803],_mm256_xor_si256(c2[1778],_mm256_xor_si256(c2[5299],_mm256_xor_si256(c2[8818],_mm256_xor_si256(c2[743],_mm256_xor_si256(c2[5319],_mm256_xor_si256(c2[8837],_mm256_xor_si256(c2[10964],_mm256_xor_si256(c2[7443],_mm256_xor_si256(c2[7090],_mm256_xor_si256(c2[9923],_mm256_xor_si256(c2[10977],_mm256_xor_si256(c2[7104],_mm256_xor_si256(c2[1491],_mm256_xor_si256(c2[2546],_mm256_xor_si256(c2[7475],_mm256_xor_si256(c2[3616],_mm256_xor_si256(c2[10306],_mm256_xor_si256(c2[7844],_mm256_xor_si256(c2[10678],_mm256_xor_si256(c2[1879],_mm256_xor_si256(c2[1172],_mm256_xor_si256(c2[2947],_mm256_xor_si256(c2[6117],_mm256_xor_si256(c2[6823],_mm256_xor_si256(c2[9649],_mm256_xor_si256(c2[4725],_mm256_xor_si256(c2[11058],_mm256_xor_si256(c2[1927],_mm256_xor_si256(c2[2625],_mm256_xor_si256(c2[2980],_mm256_xor_si256(c2[5107],_mm256_xor_si256(c2[10038],_mm256_xor_si256(c2[7922],_mm256_xor_si256(c2[11109],_mm256_xor_si256(c2[2307],_mm256_xor_si256(c2[7943],_mm256_xor_si256(c2[3376],_mm256_xor_si256(c2[5140],_mm256_xor_si256(c2[9718],_mm256_xor_si256(c2[4803],_mm256_xor_si256(c2[583],_mm256_xor_si256(c2[6918],_mm256_xor_si256(c2[1302],_mm256_xor_si256(c2[1652],_mm256_xor_si256(c2[599],_mm256_xor_si256(c2[8352],_mm256_xor_si256(c2[5188],_mm256_xor_si256(c2[5895],_mm256_xor_si256(c2[9780],_mm256_xor_si256(c2[7671],_mm256_xor_si256(c2[4498],_mm256_xor_si256(c2[10853],_mm256_xor_si256(c2[4870],_mm256_xor_si256(c2[7335],_mm256_xor_si256(c2[1361],_mm256_xor_si256(c2[11223],_mm256_xor_si256(c2[9815],_mm256_xor_si256(c2[5607],_mm256_xor_si256(c2[7715],_mm256_xor_si256(c2[5956],_mm256_xor_si256(c2[11248],_mm256_xor_si256(c2[10192],c2[4560]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 1
d2[8]=_mm256_xor_si256(c2[9159],_mm256_xor_si256(c2[9511],_mm256_xor_si256(c2[1056],_mm256_xor_si256(c2[3875],_mm256_xor_si256(c2[9155],_mm256_xor_si256(c2[1778],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[5651],_mm256_xor_si256(c2[9170],_mm256_xor_si256(c2[743],_mm256_xor_si256(c2[1095],_mm256_xor_si256(c2[5671],_mm256_xor_si256(c2[9189],_mm256_xor_si256(c2[10964],_mm256_xor_si256(c2[53],_mm256_xor_si256(c2[7795],_mm256_xor_si256(c2[7442],_mm256_xor_si256(c2[10275],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[7456],_mm256_xor_si256(c2[1491],_mm256_xor_si256(c2[1843],_mm256_xor_si256(c2[2898],_mm256_xor_si256(c2[7827],_mm256_xor_si256(c2[3616],_mm256_xor_si256(c2[3968],_mm256_xor_si256(c2[10658],_mm256_xor_si256(c2[8196],_mm256_xor_si256(c2[11030],_mm256_xor_si256(c2[2231],_mm256_xor_si256(c2[1524],_mm256_xor_si256(c2[3299],_mm256_xor_si256(c2[6469],_mm256_xor_si256(c2[7175],_mm256_xor_si256(c2[9649],_mm256_xor_si256(c2[10001],_mm256_xor_si256(c2[5077],_mm256_xor_si256(c2[147],_mm256_xor_si256(c2[1927],_mm256_xor_si256(c2[2279],_mm256_xor_si256(c2[2977],_mm256_xor_si256(c2[3332],_mm256_xor_si256(c2[5107],_mm256_xor_si256(c2[5459],_mm256_xor_si256(c2[10390],_mm256_xor_si256(c2[8274],_mm256_xor_si256(c2[11109],_mm256_xor_si256(c2[198],_mm256_xor_si256(c2[2659],_mm256_xor_si256(c2[8295],_mm256_xor_si256(c2[3376],_mm256_xor_si256(c2[3728],_mm256_xor_si256(c2[5492],_mm256_xor_si256(c2[10070],_mm256_xor_si256(c2[5155],_mm256_xor_si256(c2[935],_mm256_xor_si256(c2[7270],_mm256_xor_si256(c2[1302],_mm256_xor_si256(c2[1654],_mm256_xor_si256(c2[2004],_mm256_xor_si256(c2[951],_mm256_xor_si256(c2[8352],_mm256_xor_si256(c2[8704],_mm256_xor_si256(c2[5540],_mm256_xor_si256(c2[6247],_mm256_xor_si256(c2[10132],_mm256_xor_si256(c2[8023],_mm256_xor_si256(c2[4850],_mm256_xor_si256(c2[10853],_mm256_xor_si256(c2[11205],_mm256_xor_si256(c2[5222],_mm256_xor_si256(c2[7687],_mm256_xor_si256(c2[1361],_mm256_xor_si256(c2[1713],_mm256_xor_si256(c2[304],_mm256_xor_si256(c2[10167],_mm256_xor_si256(c2[5607],_mm256_xor_si256(c2[5959],_mm256_xor_si256(c2[8067],_mm256_xor_si256(c2[6308],_mm256_xor_si256(c2[11248],_mm256_xor_si256(c2[337],_mm256_xor_si256(c2[10544],c2[4912])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 2
d2[16]=_mm256_xor_si256(c2[9511],_mm256_xor_si256(c2[1056],_mm256_xor_si256(c2[3523],_mm256_xor_si256(c2[3875],_mm256_xor_si256(c2[8803],_mm256_xor_si256(c2[9155],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[5299],_mm256_xor_si256(c2[5651],_mm256_xor_si256(c2[8818],_mm256_xor_si256(c2[9170],_mm256_xor_si256(c2[1095],_mm256_xor_si256(c2[5671],_mm256_xor_si256(c2[8837],_mm256_xor_si256(c2[9189],_mm256_xor_si256(c2[53],_mm256_xor_si256(c2[7795],_mm256_xor_si256(c2[7090],_mm256_xor_si256(c2[7442],_mm256_xor_si256(c2[10275],_mm256_xor_si256(c2[10977],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[7104],_mm256_xor_si256(c2[7456],_mm256_xor_si256(c2[1843],_mm256_xor_si256(c2[2898],_mm256_xor_si256(c2[7475],_mm256_xor_si256(c2[7827],_mm256_xor_si256(c2[3968],_mm256_xor_si256(c2[10306],_mm256_xor_si256(c2[10658],_mm256_xor_si256(c2[7844],_mm256_xor_si256(c2[8196],_mm256_xor_si256(c2[11030],_mm256_xor_si256(c2[1879],_mm256_xor_si256(c2[2231],_mm256_xor_si256(c2[1172],_mm256_xor_si256(c2[1524],_mm256_xor_si256(c2[3299],_mm256_xor_si256(c2[6117],_mm256_xor_si256(c2[6469],_mm256_xor_si256(c2[6823],_mm256_xor_si256(c2[7175],_mm256_xor_si256(c2[10001],_mm256_xor_si256(c2[5077],_mm256_xor_si256(c2[11058],_mm256_xor_si256(c2[147],_mm256_xor_si256(c2[2279],_mm256_xor_si256(c2[2625],_mm256_xor_si256(c2[2977],_mm256_xor_si256(c2[2980],_mm256_xor_si256(c2[3332],_mm256_xor_si256(c2[5459],_mm256_xor_si256(c2[10390],_mm256_xor_si256(c2[7922],_mm256_xor_si256(c2[8274],_mm256_xor_si256(c2[198],_mm256_xor_si256(c2[2659],_mm256_xor_si256(c2[7943],_mm256_xor_si256(c2[8295],_mm256_xor_si256(c2[3728],_mm256_xor_si256(c2[5140],_mm256_xor_si256(c2[5492],_mm256_xor_si256(c2[9718],_mm256_xor_si256(c2[10070],_mm256_xor_si256(c2[5155],_mm256_xor_si256(c2[583],_mm256_xor_si256(c2[935],_mm256_xor_si256(c2[6918],_mm256_xor_si256(c2[7270],_mm256_xor_si256(c2[1654],_mm256_xor_si256(c2[2004],_mm256_xor_si256(c2[599],_mm256_xor_si256(c2[951],_mm256_xor_si256(c2[8704],_mm256_xor_si256(c2[5540],_mm256_xor_si256(c2[5895],_mm256_xor_si256(c2[6247],_mm256_xor_si256(c2[10132],_mm256_xor_si256(c2[7671],_mm256_xor_si256(c2[8023],_mm256_xor_si256(c2[4498],_mm256_xor_si256(c2[4850],_mm256_xor_si256(c2[11205],_mm256_xor_si256(c2[4870],_mm256_xor_si256(c2[5222],_mm256_xor_si256(c2[7335],_mm256_xor_si256(c2[7687],_mm256_xor_si256(c2[1713],_mm256_xor_si256(c2[304],_mm256_xor_si256(c2[9815],_mm256_xor_si256(c2[10167],_mm256_xor_si256(c2[5959],_mm256_xor_si256(c2[7715],_mm256_xor_si256(c2[8067],_mm256_xor_si256(c2[5956],_mm256_xor_si256(c2[6308],_mm256_xor_si256(c2[337],_mm256_xor_si256(c2[10544],_mm256_xor_si256(c2[4560],c2[4912]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 3
d2[24]=_mm256_xor_si256(c2[9511],_mm256_xor_si256(c2[1056],_mm256_xor_si256(c2[3875],_mm256_xor_si256(c2[8803],_mm256_xor_si256(c2[9155],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[5651],_mm256_xor_si256(c2[8818],_mm256_xor_si256(c2[9170],_mm256_xor_si256(c2[1095],_mm256_xor_si256(c2[5671],_mm256_xor_si256(c2[9189],_mm256_xor_si256(c2[53],_mm256_xor_si256(c2[7795],_mm256_xor_si256(c2[7090],_mm256_xor_si256(c2[7442],_mm256_xor_si256(c2[10275],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[7104],_mm256_xor_si256(c2[7456],_mm256_xor_si256(c2[1843],_mm256_xor_si256(c2[2898],_mm256_xor_si256(c2[7827],_mm256_xor_si256(c2[3968],_mm256_xor_si256(c2[10658],_mm256_xor_si256(c2[7844],_mm256_xor_si256(c2[8196],_mm256_xor_si256(c2[11030],_mm256_xor_si256(c2[2231],_mm256_xor_si256(c2[1172],_mm256_xor_si256(c2[1524],_mm256_xor_si256(c2[3299],_mm256_xor_si256(c2[6469],_mm256_xor_si256(c2[6823],_mm256_xor_si256(c2[7175],_mm256_xor_si256(c2[10001],_mm256_xor_si256(c2[5077],_mm256_xor_si256(c2[147],_mm256_xor_si256(c2[2279],_mm256_xor_si256(c2[2977],_mm256_xor_si256(c2[2980],_mm256_xor_si256(c2[3332],_mm256_xor_si256(c2[5459],_mm256_xor_si256(c2[10390],_mm256_xor_si256(c2[7922],_mm256_xor_si256(c2[8274],_mm256_xor_si256(c2[198],_mm256_xor_si256(c2[2659],_mm256_xor_si256(c2[7943],_mm256_xor_si256(c2[8295],_mm256_xor_si256(c2[3728],_mm256_xor_si256(c2[5492],_mm256_xor_si256(c2[9718],_mm256_xor_si256(c2[10070],_mm256_xor_si256(c2[5155],_mm256_xor_si256(c2[935],_mm256_xor_si256(c2[6918],_mm256_xor_si256(c2[7270],_mm256_xor_si256(c2[1654],_mm256_xor_si256(c2[2004],_mm256_xor_si256(c2[951],_mm256_xor_si256(c2[8704],_mm256_xor_si256(c2[5540],_mm256_xor_si256(c2[5895],_mm256_xor_si256(c2[6247],_mm256_xor_si256(c2[10132],_mm256_xor_si256(c2[8023],_mm256_xor_si256(c2[4498],_mm256_xor_si256(c2[4850],_mm256_xor_si256(c2[11205],_mm256_xor_si256(c2[5222],_mm256_xor_si256(c2[7335],_mm256_xor_si256(c2[7687],_mm256_xor_si256(c2[1713],_mm256_xor_si256(c2[304],_mm256_xor_si256(c2[10167],_mm256_xor_si256(c2[5959],_mm256_xor_si256(c2[8067],_mm256_xor_si256(c2[5956],_mm256_xor_si256(c2[6308],_mm256_xor_si256(c2[337],_mm256_xor_si256(c2[10544],_mm256_xor_si256(c2[4560],c2[4912])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 4
d2[32]=_mm256_xor_si256(c2[10212],c2[2131]);
//row: 5
d2[40]=_mm256_xor_si256(c2[4579],_mm256_xor_si256(c2[7395],_mm256_xor_si256(c2[10214],_mm256_xor_si256(c2[4231],_mm256_xor_si256(c2[4582],_mm256_xor_si256(c2[8469],_mm256_xor_si256(c2[727],_mm256_xor_si256(c2[4246],_mm256_xor_si256(c2[4247],_mm256_xor_si256(c2[7426],_mm256_xor_si256(c2[739],_mm256_xor_si256(c2[4257],_mm256_xor_si256(c2[6384],_mm256_xor_si256(c2[2871],_mm256_xor_si256(c2[2518],_mm256_xor_si256(c2[758],_mm256_xor_si256(c2[5351],_mm256_xor_si256(c2[6405],_mm256_xor_si256(c2[2532],_mm256_xor_si256(c2[8182],_mm256_xor_si256(c2[9237],_mm256_xor_si256(c2[2903],_mm256_xor_si256(c2[10307],_mm256_xor_si256(c2[5734],_mm256_xor_si256(c2[3264],_mm256_xor_si256(c2[6098],_mm256_xor_si256(c2[8562],_mm256_xor_si256(c2[7863],_mm256_xor_si256(c2[9638],_mm256_xor_si256(c2[1537],_mm256_xor_si256(c2[2243],_mm256_xor_si256(c2[5077],_mm256_xor_si256(c2[145],_mm256_xor_si256(c2[6486],_mm256_xor_si256(c2[8610],_mm256_xor_si256(c2[9316],_mm256_xor_si256(c2[9671],_mm256_xor_si256(c2[535],_mm256_xor_si256(c2[5458],_mm256_xor_si256(c2[3350],_mm256_xor_si256(c2[6529],_mm256_xor_si256(c2[8998],_mm256_xor_si256(c2[3363],_mm256_xor_si256(c2[2663],_mm256_xor_si256(c2[10067],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[5138],_mm256_xor_si256(c2[231],_mm256_xor_si256(c2[7266],_mm256_xor_si256(c2[2338],_mm256_xor_si256(c2[7985],_mm256_xor_si256(c2[8343],_mm256_xor_si256(c2[7282],_mm256_xor_si256(c2[3780],_mm256_xor_si256(c2[608],_mm256_xor_si256(c2[1315],_mm256_xor_si256(c2[10112],_mm256_xor_si256(c2[5200],_mm256_xor_si256(c2[3091],_mm256_xor_si256(c2[11189],_mm256_xor_si256(c2[6273],_mm256_xor_si256(c2[290],_mm256_xor_si256(c2[2755],_mm256_xor_si256(c2[8052],_mm256_xor_si256(c2[6643],_mm256_xor_si256(c2[5235],_mm256_xor_si256(c2[1027],_mm256_xor_si256(c2[3143],_mm256_xor_si256(c2[1376],_mm256_xor_si256(c2[6676],_mm256_xor_si256(c2[5620],_mm256_xor_si256(c2[11251],c2[9843]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 6
d2[48]=_mm256_xor_si256(c2[8101],_mm256_xor_si256(c2[7840],_mm256_xor_si256(c2[10016],_mm256_xor_si256(c2[1234],_mm256_xor_si256(c2[7255],_mm256_xor_si256(c2[4144],_mm256_xor_si256(c2[10500],c2[7014])))))));
//row: 7
d2[56]=_mm256_xor_si256(c2[9862],_mm256_xor_si256(c2[4241],_mm256_xor_si256(c2[10980],_mm256_xor_si256(c2[11024],_mm256_xor_si256(c2[2597],c2[3043])))));
//row: 8
d2[64]=_mm256_xor_si256(c2[3879],_mm256_xor_si256(c2[7394],_mm256_xor_si256(c2[6695],_mm256_xor_si256(c2[10210],_mm256_xor_si256(c2[9506],_mm256_xor_si256(c2[1414],_mm256_xor_si256(c2[1766],_mm256_xor_si256(c2[3523],_mm256_xor_si256(c2[6694],_mm256_xor_si256(c2[7046],_mm256_xor_si256(c2[5635],_mm256_xor_si256(c2[7761],_mm256_xor_si256(c2[21],_mm256_xor_si256(c2[19],_mm256_xor_si256(c2[3190],_mm256_xor_si256(c2[3542],_mm256_xor_si256(c2[3538],_mm256_xor_si256(c2[6709],_mm256_xor_si256(c2[7061],_mm256_xor_si256(c2[1424],_mm256_xor_si256(c2[6726],_mm256_xor_si256(c2[10241],_mm256_xor_si256(c2[39],_mm256_xor_si256(c2[3554],_mm256_xor_si256(c2[3557],_mm256_xor_si256(c2[6720],_mm256_xor_si256(c2[7072],_mm256_xor_si256(c2[5684],_mm256_xor_si256(c2[9207],_mm256_xor_si256(c2[2163],_mm256_xor_si256(c2[5686],_mm256_xor_si256(c2[1810],_mm256_xor_si256(c2[4981],_mm256_xor_si256(c2[5333],_mm256_xor_si256(c2[2512],_mm256_xor_si256(c2[4643],_mm256_xor_si256(c2[8166],_mm256_xor_si256(c2[5697],_mm256_xor_si256(c2[8868],_mm256_xor_si256(c2[9220],_mm256_xor_si256(c2[1824],_mm256_xor_si256(c2[4995],_mm256_xor_si256(c2[5347],_mm256_xor_si256(c2[7474],_mm256_xor_si256(c2[10997],_mm256_xor_si256(c2[8529],_mm256_xor_si256(c2[789],_mm256_xor_si256(c2[2195],_mm256_xor_si256(c2[5366],_mm256_xor_si256(c2[5718],_mm256_xor_si256(c2[9607],_mm256_xor_si256(c2[1859],_mm256_xor_si256(c2[5026],_mm256_xor_si256(c2[8197],_mm256_xor_si256(c2[8549],_mm256_xor_si256(c2[2564],_mm256_xor_si256(c2[5735],_mm256_xor_si256(c2[6087],_mm256_xor_si256(c2[5398],_mm256_xor_si256(c2[8913],_mm256_xor_si256(c2[7862],_mm256_xor_si256(c2[11025],_mm256_xor_si256(c2[114],_mm256_xor_si256(c2[7155],_mm256_xor_si256(c2[10326],_mm256_xor_si256(c2[10678],_mm256_xor_si256(c2[8930],_mm256_xor_si256(c2[1190],_mm256_xor_si256(c2[837],_mm256_xor_si256(c2[4000],_mm256_xor_si256(c2[4352],_mm256_xor_si256(c2[1543],_mm256_xor_si256(c2[4706],_mm256_xor_si256(c2[5058],_mm256_xor_si256(c2[4369],_mm256_xor_si256(c2[7892],_mm256_xor_si256(c2[10708],_mm256_xor_si256(c2[2960],_mm256_xor_si256(c2[5778],_mm256_xor_si256(c2[8949],_mm256_xor_si256(c2[9301],_mm256_xor_si256(c2[7910],_mm256_xor_si256(c2[162],_mm256_xor_si256(c2[8608],_mm256_xor_si256(c2[516],_mm256_xor_si256(c2[868],_mm256_xor_si256(c2[8963],_mm256_xor_si256(c2[871],_mm256_xor_si256(c2[1223],_mm256_xor_si256(c2[11090],_mm256_xor_si256(c2[3350],_mm256_xor_si256(c2[4758],_mm256_xor_si256(c2[8273],_mm256_xor_si256(c2[2642],_mm256_xor_si256(c2[5813],_mm256_xor_si256(c2[6165],_mm256_xor_si256(c2[5829],_mm256_xor_si256(c2[9344],_mm256_xor_si256(c2[8290],_mm256_xor_si256(c2[550],_mm256_xor_si256(c2[2663],_mm256_xor_si256(c2[5826],_mm256_xor_si256(c2[6178],_mm256_xor_si256(c2[6886],_mm256_xor_si256(c2[9367],_mm256_xor_si256(c2[1619],_mm256_xor_si256(c2[11123],_mm256_xor_si256(c2[3031],_mm256_xor_si256(c2[3383],_mm256_xor_si256(c2[4438],_mm256_xor_si256(c2[7601],_mm256_xor_si256(c2[7953],_mm256_xor_si256(c2[10786],_mm256_xor_si256(c2[3046],_mm256_xor_si256(c2[6566],_mm256_xor_si256(c2[9729],_mm256_xor_si256(c2[10081],_mm256_xor_si256(c2[1638],_mm256_xor_si256(c2[4801],_mm256_xor_si256(c2[5153],_mm256_xor_si256(c2[7285],_mm256_xor_si256(c2[10800],_mm256_xor_si256(c2[7635],_mm256_xor_si256(c2[11158],_mm256_xor_si256(c2[6582],_mm256_xor_si256(c2[9745],_mm256_xor_si256(c2[10097],_mm256_xor_si256(c2[3072],_mm256_xor_si256(c2[6595],_mm256_xor_si256(c2[11171],_mm256_xor_si256(c2[3431],_mm256_xor_si256(c2[615],_mm256_xor_si256(c2[3778],_mm256_xor_si256(c2[4130],_mm256_xor_si256(c2[2371],_mm256_xor_si256(c2[4500],_mm256_xor_si256(c2[8023],_mm256_xor_si256(c2[2391],_mm256_xor_si256(c2[5554],_mm256_xor_si256(c2[5906],_mm256_xor_si256(c2[10481],_mm256_xor_si256(c2[2389],_mm256_xor_si256(c2[2741],_mm256_xor_si256(c2[5573],_mm256_xor_si256(c2[9088],_mm256_xor_si256(c2[10853],_mm256_xor_si256(c2[2753],_mm256_xor_si256(c2[3105],_mm256_xor_si256(c2[2055],_mm256_xor_si256(c2[5218],_mm256_xor_si256(c2[5570],_mm256_xor_si256(c2[7344],_mm256_xor_si256(c2[10867],_mm256_xor_si256(c2[5943],_mm256_xor_si256(c2[9458],_mm256_xor_si256(c2[4535],_mm256_xor_si256(c2[7698],_mm256_xor_si256(c2[8050],_mm256_xor_si256(c2[1717],_mm256_xor_si256(c2[327],_mm256_xor_si256(c2[3842],_mm256_xor_si256(c2[2435],_mm256_xor_si256(c2[5606],_mm256_xor_si256(c2[5958],_mm256_xor_si256(c2[676],_mm256_xor_si256(c2[3847],_mm256_xor_si256(c2[4199],_mm256_xor_si256(c2[5968],_mm256_xor_si256(c2[9491],_mm256_xor_si256(c2[4912],_mm256_xor_si256(c2[8435],_mm256_xor_si256(c2[10551],_mm256_xor_si256(c2[2451],_mm256_xor_si256(c2[2803],c2[4915]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 9
d2[72]=_mm256_xor_si256(c2[2467],_mm256_xor_si256(c2[7765],_mm256_xor_si256(c2[4739],_mm256_xor_si256(c2[7568],_mm256_xor_si256(c2[5140],_mm256_xor_si256(c2[5200],_mm256_xor_si256(c2[10497],c2[8774])))))));
//row: 10
d2[80]=_mm256_xor_si256(c2[723],_mm256_xor_si256(c2[7428],_mm256_xor_si256(c2[2533],_mm256_xor_si256(c2[117],_mm256_xor_si256(c2[6113],c2[9377])))));
//row: 11
d2[88]=_mm256_xor_si256(c2[7751],_mm256_xor_si256(c2[5632],_mm256_xor_si256(c2[5984],_mm256_xor_si256(c2[10567],_mm256_xor_si256(c2[8800],_mm256_xor_si256(c2[2115],_mm256_xor_si256(c2[356],_mm256_xor_si256(c2[7395],_mm256_xor_si256(c2[5636],_mm256_xor_si256(c2[4578],_mm256_xor_si256(c2[370],_mm256_xor_si256(c2[9522],_mm256_xor_si256(c2[9874],_mm256_xor_si256(c2[3891],_mm256_xor_si256(c2[2132],_mm256_xor_si256(c2[7410],_mm256_xor_si256(c2[5651],_mm256_xor_si256(c2[3185],_mm256_xor_si256(c2[10598],_mm256_xor_si256(c2[8487],_mm256_xor_si256(c2[8839],_mm256_xor_si256(c2[3911],_mm256_xor_si256(c2[2144],_mm256_xor_si256(c2[7429],_mm256_xor_si256(c2[5670],_mm256_xor_si256(c2[9556],_mm256_xor_si256(c2[7445],_mm256_xor_si256(c2[7797],_mm256_xor_si256(c2[6035],_mm256_xor_si256(c2[4276],_mm256_xor_si256(c2[5682],_mm256_xor_si256(c2[3923],_mm256_xor_si256(c2[8515],_mm256_xor_si256(c2[6756],_mm256_xor_si256(c2[9569],_mm256_xor_si256(c2[7810],_mm256_xor_si256(c2[5696],_mm256_xor_si256(c2[3937],_mm256_xor_si256(c2[83],_mm256_xor_si256(c2[9235],_mm256_xor_si256(c2[9587],_mm256_xor_si256(c2[1138],_mm256_xor_si256(c2[10642],_mm256_xor_si256(c2[6067],_mm256_xor_si256(c2[4308],_mm256_xor_si256(c2[2208],_mm256_xor_si256(c2[97],_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[8898],_mm256_xor_si256(c2[7139],_mm256_xor_si256(c2[6436],_mm256_xor_si256(c2[4677],_mm256_xor_si256(c2[9270],_mm256_xor_si256(c2[7511],_mm256_xor_si256(c2[471],_mm256_xor_si256(c2[9975],_mm256_xor_si256(c2[11027],_mm256_xor_si256(c2[9268],_mm256_xor_si256(c2[1539],_mm256_xor_si256(c2[11043],_mm256_xor_si256(c2[4709],_mm256_xor_si256(c2[2950],_mm256_xor_si256(c2[5415],_mm256_xor_si256(c2[3648],_mm256_xor_si256(c2[8241],_mm256_xor_si256(c2[6130],_mm256_xor_si256(c2[6482],_mm256_xor_si256(c2[3317],_mm256_xor_si256(c2[1558],_mm256_xor_si256(c2[9650],_mm256_xor_si256(c2[7891],_mm256_xor_si256(c2[519],_mm256_xor_si256(c2[9671],_mm256_xor_si256(c2[10023],_mm256_xor_si256(c2[1217],_mm256_xor_si256(c2[10721],_mm256_xor_si256(c2[1572],_mm256_xor_si256(c2[11076],_mm256_xor_si256(c2[3699],_mm256_xor_si256(c2[1588],_mm256_xor_si256(c2[1940],_mm256_xor_si256(c2[8630],_mm256_xor_si256(c2[6871],_mm256_xor_si256(c2[6514],_mm256_xor_si256(c2[4755],_mm256_xor_si256(c2[9701],_mm256_xor_si256(c2[7590],_mm256_xor_si256(c2[7942],_mm256_xor_si256(c2[899],_mm256_xor_si256(c2[10403],_mm256_xor_si256(c2[6535],_mm256_xor_si256(c2[4768],_mm256_xor_si256(c2[6882],_mm256_xor_si256(c2[1968],_mm256_xor_si256(c2[11120],_mm256_xor_si256(c2[209],_mm256_xor_si256(c2[3732],_mm256_xor_si256(c2[1973],_mm256_xor_si256(c2[8310],_mm256_xor_si256(c2[6551],_mm256_xor_si256(c2[3395],_mm256_xor_si256(c2[1636],_mm256_xor_si256(c2[10438],_mm256_xor_si256(c2[8679],_mm256_xor_si256(c2[5510],_mm256_xor_si256(c2[3751],_mm256_xor_si256(c2[11157],_mm256_xor_si256(c2[9046],_mm256_xor_si256(c2[9398],_mm256_xor_si256(c2[244],_mm256_xor_si256(c2[9748],_mm256_xor_si256(c2[10454],_mm256_xor_si256(c2[8695],_mm256_xor_si256(c2[6944],_mm256_xor_si256(c2[4833],_mm256_xor_si256(c2[5185],_mm256_xor_si256(c2[3780],_mm256_xor_si256(c2[2021],_mm256_xor_si256(c2[4487],_mm256_xor_si256(c2[2720],_mm256_xor_si256(c2[8005],_mm256_xor_si256(c2[8372],_mm256_xor_si256(c2[6613],_mm256_xor_si256(c2[6263],_mm256_xor_si256(c2[4496],_mm256_xor_si256(c2[3090],_mm256_xor_si256(c2[1331],_mm256_xor_si256(c2[9445],_mm256_xor_si256(c2[7334],_mm256_xor_si256(c2[7686],_mm256_xor_si256(c2[3462],_mm256_xor_si256(c2[1703],_mm256_xor_si256(c2[5927],_mm256_xor_si256(c2[4160],_mm256_xor_si256(c2[11216],_mm256_xor_si256(c2[9105],_mm256_xor_si256(c2[9457],_mm256_xor_si256(c2[9815],_mm256_xor_si256(c2[8048],_mm256_xor_si256(c2[8407],_mm256_xor_si256(c2[6640],_mm256_xor_si256(c2[4199],_mm256_xor_si256(c2[2080],_mm256_xor_si256(c2[2432],_mm256_xor_si256(c2[6307],_mm256_xor_si256(c2[4548],_mm256_xor_si256(c2[4548],_mm256_xor_si256(c2[2789],_mm256_xor_si256(c2[9840],_mm256_xor_si256(c2[7729],_mm256_xor_si256(c2[8081],_mm256_xor_si256(c2[8784],_mm256_xor_si256(c2[7025],_mm256_xor_si256(c2[3152],_mm256_xor_si256(c2[1393],c2[5266])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 12
d2[96]=_mm256_xor_si256(c2[5],_mm256_xor_si256(c2[3537],_mm256_xor_si256(c2[7552],_mm256_xor_si256(c2[177],_mm256_xor_si256(c2[3735],c2[2752])))));
//row: 13
d2[104]=_mm256_xor_si256(c2[8449],_mm256_xor_si256(c2[8801],_mm256_xor_si256(c2[354],_mm256_xor_si256(c2[3173],_mm256_xor_si256(c2[8453],_mm256_xor_si256(c2[5989],_mm256_xor_si256(c2[1076],_mm256_xor_si256(c2[1428],_mm256_xor_si256(c2[4949],_mm256_xor_si256(c2[8468],_mm256_xor_si256(c2[33],_mm256_xor_si256(c2[385],_mm256_xor_si256(c2[4961],_mm256_xor_si256(c2[8487],_mm256_xor_si256(c2[10262],_mm256_xor_si256(c2[10614],_mm256_xor_si256(c2[7093],_mm256_xor_si256(c2[6740],_mm256_xor_si256(c2[8503],_mm256_xor_si256(c2[9573],_mm256_xor_si256(c2[10627],_mm256_xor_si256(c2[6754],_mm256_xor_si256(c2[789],_mm256_xor_si256(c2[1141],_mm256_xor_si256(c2[2196],_mm256_xor_si256(c2[7125],_mm256_xor_si256(c2[2914],_mm256_xor_si256(c2[3266],_mm256_xor_si256(c2[9956],_mm256_xor_si256(c2[7494],_mm256_xor_si256(c2[10320],_mm256_xor_si256(c2[1521],_mm256_xor_si256(c2[822],_mm256_xor_si256(c2[8212],_mm256_xor_si256(c2[2597],_mm256_xor_si256(c2[5767],_mm256_xor_si256(c2[6465],_mm256_xor_si256(c2[8947],_mm256_xor_si256(c2[9299],_mm256_xor_si256(c2[4375],_mm256_xor_si256(c2[10708],_mm256_xor_si256(c2[1217],_mm256_xor_si256(c2[1569],_mm256_xor_si256(c2[2275],_mm256_xor_si256(c2[2630],_mm256_xor_si256(c2[4405],_mm256_xor_si256(c2[4757],_mm256_xor_si256(c2[9680],_mm256_xor_si256(c2[7572],_mm256_xor_si256(c2[10407],_mm256_xor_si256(c2[10759],_mm256_xor_si256(c2[1957],_mm256_xor_si256(c2[7585],_mm256_xor_si256(c2[2674],_mm256_xor_si256(c2[3026],_mm256_xor_si256(c2[4790],_mm256_xor_si256(c2[9360],_mm256_xor_si256(c2[4453],_mm256_xor_si256(c2[225],_mm256_xor_si256(c2[6560],_mm256_xor_si256(c2[592],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[1302],_mm256_xor_si256(c2[241],_mm256_xor_si256(c2[7650],_mm256_xor_si256(c2[8002],_mm256_xor_si256(c2[4838],_mm256_xor_si256(c2[5537],_mm256_xor_si256(c2[9430],_mm256_xor_si256(c2[7313],_mm256_xor_si256(c2[4148],_mm256_xor_si256(c2[10151],_mm256_xor_si256(c2[10503],_mm256_xor_si256(c2[4512],_mm256_xor_si256(c2[6977],_mm256_xor_si256(c2[659],_mm256_xor_si256(c2[1011],_mm256_xor_si256(c2[10865],_mm256_xor_si256(c2[9457],_mm256_xor_si256(c2[4897],_mm256_xor_si256(c2[5249],_mm256_xor_si256(c2[7365],_mm256_xor_si256(c2[5606],_mm256_xor_si256(c2[9125],_mm256_xor_si256(c2[10546],_mm256_xor_si256(c2[10898],_mm256_xor_si256(c2[9842],c2[4210])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 14
d2[112]=_mm256_xor_si256(c2[4934],_mm256_xor_si256(c2[8289],_mm256_xor_si256(c2[5174],_mm256_xor_si256(c2[11171],_mm256_xor_si256(c2[5904],c2[2103])))));
//row: 15
d2[120]=_mm256_xor_si256(c2[4933],_mm256_xor_si256(c2[7749],_mm256_xor_si256(c2[10560],_mm256_xor_si256(c2[4225],_mm256_xor_si256(c2[4577],_mm256_xor_si256(c2[2817],_mm256_xor_si256(c2[8823],_mm256_xor_si256(c2[1073],_mm256_xor_si256(c2[4240],_mm256_xor_si256(c2[4592],_mm256_xor_si256(c2[19],_mm256_xor_si256(c2[7780],_mm256_xor_si256(c2[1093],_mm256_xor_si256(c2[4611],_mm256_xor_si256(c2[6738],_mm256_xor_si256(c2[3217],_mm256_xor_si256(c2[2512],_mm256_xor_si256(c2[2864],_mm256_xor_si256(c2[5697],_mm256_xor_si256(c2[6759],_mm256_xor_si256(c2[2534],_mm256_xor_si256(c2[2886],_mm256_xor_si256(c2[8528],_mm256_xor_si256(c2[9591],_mm256_xor_si256(c2[3249],_mm256_xor_si256(c2[10661],_mm256_xor_si256(c2[6080],_mm256_xor_si256(c2[3266],_mm256_xor_si256(c2[3618],_mm256_xor_si256(c2[6452],_mm256_xor_si256(c2[8916],_mm256_xor_si256(c2[7857],_mm256_xor_si256(c2[8209],_mm256_xor_si256(c2[9984],_mm256_xor_si256(c2[1891],_mm256_xor_si256(c2[2245],_mm256_xor_si256(c2[2597],_mm256_xor_si256(c2[5431],_mm256_xor_si256(c2[499],_mm256_xor_si256(c2[6832],_mm256_xor_si256(c2[8964],_mm256_xor_si256(c2[9670],_mm256_xor_si256(c2[9665],_mm256_xor_si256(c2[10017],_mm256_xor_si256(c2[514],_mm256_xor_si256(c2[881],_mm256_xor_si256(c2[5812],_mm256_xor_si256(c2[3344],_mm256_xor_si256(c2[3696],_mm256_xor_si256(c2[6883],_mm256_xor_si256(c2[9344],_mm256_xor_si256(c2[3365],_mm256_xor_si256(c2[3717],_mm256_xor_si256(c2[10421],_mm256_xor_si256(c2[914],_mm256_xor_si256(c2[5140],_mm256_xor_si256(c2[5492],_mm256_xor_si256(c2[11121],_mm256_xor_si256(c2[577],_mm256_xor_si256(c2[7620],_mm256_xor_si256(c2[2340],_mm256_xor_si256(c2[2692],_mm256_xor_si256(c2[8339],_mm256_xor_si256(c2[8689],_mm256_xor_si256(c2[7636],_mm256_xor_si256(c2[4134],_mm256_xor_si256(c2[962],_mm256_xor_si256(c2[1317],_mm256_xor_si256(c2[1669],_mm256_xor_si256(c2[5554],_mm256_xor_si256(c2[3445],_mm256_xor_si256(c2[11191],_mm256_xor_si256(c2[272],_mm256_xor_si256(c2[6627],_mm256_xor_si256(c2[644],_mm256_xor_si256(c2[2757],_mm256_xor_si256(c2[3109],_mm256_xor_si256(c2[4162],_mm256_xor_si256(c2[8406],_mm256_xor_si256(c2[6997],_mm256_xor_si256(c2[5589],_mm256_xor_si256(c2[1381],_mm256_xor_si256(c2[3489],_mm256_xor_si256(c2[1378],_mm256_xor_si256(c2[1730],_mm256_xor_si256(c2[7030],_mm256_xor_si256(c2[5974],_mm256_xor_si256(c2[11253],c2[342]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 16
d2[128]=_mm256_xor_si256(c2[7044],_mm256_xor_si256(c2[9860],_mm256_xor_si256(c2[1408],_mm256_xor_si256(c2[6688],_mm256_xor_si256(c2[10934],_mm256_xor_si256(c2[3184],_mm256_xor_si256(c2[6711],_mm256_xor_si256(c2[18],_mm256_xor_si256(c2[9891],_mm256_xor_si256(c2[3204],_mm256_xor_si256(c2[6722],_mm256_xor_si256(c2[8849],_mm256_xor_si256(c2[5328],_mm256_xor_si256(c2[4983],_mm256_xor_si256(c2[6033],_mm256_xor_si256(c2[7808],_mm256_xor_si256(c2[8870],_mm256_xor_si256(c2[4997],_mm256_xor_si256(c2[10647],_mm256_xor_si256(c2[439],_mm256_xor_si256(c2[5360],_mm256_xor_si256(c2[1509],_mm256_xor_si256(c2[8199],_mm256_xor_si256(c2[5729],_mm256_xor_si256(c2[8563],_mm256_xor_si256(c2[11027],_mm256_xor_si256(c2[10320],_mm256_xor_si256(c2[832],_mm256_xor_si256(c2[4002],_mm256_xor_si256(c2[4708],_mm256_xor_si256(c2[7542],_mm256_xor_si256(c2[2610],_mm256_xor_si256(c2[8951],_mm256_xor_si256(c2[11075],_mm256_xor_si256(c2[518],_mm256_xor_si256(c2[865],_mm256_xor_si256(c2[2992],_mm256_xor_si256(c2[7923],_mm256_xor_si256(c2[5815],_mm256_xor_si256(c2[6161],_mm256_xor_si256(c2[8994],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[5828],_mm256_xor_si256(c2[1269],_mm256_xor_si256(c2[3025],_mm256_xor_si256(c2[7603],_mm256_xor_si256(c2[2688],_mm256_xor_si256(c2[9731],_mm256_xor_si256(c2[4803],_mm256_xor_si256(c2[10450],_mm256_xor_si256(c2[10800],_mm256_xor_si256(c2[9747],_mm256_xor_si256(c2[6245],_mm256_xor_si256(c2[3073],_mm256_xor_si256(c2[3780],_mm256_xor_si256(c2[7665],_mm256_xor_si256(c2[5556],_mm256_xor_si256(c2[2391],_mm256_xor_si256(c2[8738],_mm256_xor_si256(c2[2755],_mm256_xor_si256(c2[5220],_mm256_xor_si256(c2[10517],_mm256_xor_si256(c2[9108],_mm256_xor_si256(c2[7700],_mm256_xor_si256(c2[3492],_mm256_xor_si256(c2[5600],_mm256_xor_si256(c2[3841],_mm256_xor_si256(c2[7009],_mm256_xor_si256(c2[9141],_mm256_xor_si256(c2[8085],c2[2453]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 17
d2[136]=_mm256_xor_si256(c2[2464],_mm256_xor_si256(c2[1637],_mm256_xor_si256(c2[9761],_mm256_xor_si256(c2[624],c2[5972]))));
//row: 18
d2[144]=_mm256_xor_si256(c2[3537],_mm256_xor_si256(c2[3367],_mm256_xor_si256(c2[3024],_mm256_xor_si256(c2[9796],c2[6996]))));
//row: 19
d2[152]=_mm256_xor_si256(c2[9857],_mm256_xor_si256(c2[3186],_mm256_xor_si256(c2[2930],_mm256_xor_si256(c2[11043],c2[167]))));
//row: 20
d2[160]=_mm256_xor_si256(c2[9156],_mm256_xor_si256(c2[709],_mm256_xor_si256(c2[3520],_mm256_xor_si256(c2[8800],_mm256_xor_si256(c2[8100],_mm256_xor_si256(c2[1783],_mm256_xor_si256(c2[5296],_mm256_xor_si256(c2[8823],_mm256_xor_si256(c2[740],_mm256_xor_si256(c2[5316],_mm256_xor_si256(c2[8834],_mm256_xor_si256(c2[10961],_mm256_xor_si256(c2[7440],_mm256_xor_si256(c2[7095],_mm256_xor_si256(c2[9205],_mm256_xor_si256(c2[9920],_mm256_xor_si256(c2[10982],_mm256_xor_si256(c2[7109],_mm256_xor_si256(c2[1488],_mm256_xor_si256(c2[2551],_mm256_xor_si256(c2[7472],_mm256_xor_si256(c2[3621],_mm256_xor_si256(c2[10311],_mm256_xor_si256(c2[7841],_mm256_xor_si256(c2[10675],_mm256_xor_si256(c2[1876],_mm256_xor_si256(c2[1169],_mm256_xor_si256(c2[2944],_mm256_xor_si256(c2[6114],_mm256_xor_si256(c2[6820],_mm256_xor_si256(c2[9654],_mm256_xor_si256(c2[4722],_mm256_xor_si256(c2[11063],_mm256_xor_si256(c2[8950],_mm256_xor_si256(c2[1924],_mm256_xor_si256(c2[2630],_mm256_xor_si256(c2[2977],_mm256_xor_si256(c2[5104],_mm256_xor_si256(c2[10035],_mm256_xor_si256(c2[7927],_mm256_xor_si256(c2[5457],_mm256_xor_si256(c2[11106],_mm256_xor_si256(c2[2304],_mm256_xor_si256(c2[7940],_mm256_xor_si256(c2[3381],_mm256_xor_si256(c2[5137],_mm256_xor_si256(c2[9715],_mm256_xor_si256(c2[4800],_mm256_xor_si256(c2[580],_mm256_xor_si256(c2[6915],_mm256_xor_si256(c2[1299],_mm256_xor_si256(c2[1649],_mm256_xor_si256(c2[596],_mm256_xor_si256(c2[8357],_mm256_xor_si256(c2[5185],_mm256_xor_si256(c2[5892],_mm256_xor_si256(c2[9777],_mm256_xor_si256(c2[7668],_mm256_xor_si256(c2[4503],_mm256_xor_si256(c2[10850],_mm256_xor_si256(c2[4867],_mm256_xor_si256(c2[7332],_mm256_xor_si256(c2[1366],_mm256_xor_si256(c2[11220],_mm256_xor_si256(c2[9812],_mm256_xor_si256(c2[5604],_mm256_xor_si256(c2[7712],_mm256_xor_si256(c2[5953],_mm256_xor_si256(c2[11253],_mm256_xor_si256(c2[10197],c2[4565]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 21
d2[168]=_mm256_xor_si256(c2[8823],_mm256_xor_si256(c2[8883],_mm256_xor_si256(c2[4835],_mm256_xor_si256(c2[1380],c2[4213]))));
//row: 22
d2[176]=_mm256_xor_si256(c2[2],_mm256_xor_si256(c2[5124],_mm256_xor_si256(c2[10069],c2[10836])));
//row: 23
d2[184]=_mm256_xor_si256(c2[9876],_mm256_xor_si256(c2[6724],_mm256_xor_si256(c2[3685],c2[8740])));
//row: 24
d2[192]=_mm256_xor_si256(c2[8454],_mm256_xor_si256(c2[7],_mm256_xor_si256(c2[2818],_mm256_xor_si256(c2[8098],_mm256_xor_si256(c2[5635],_mm256_xor_si256(c2[1073],_mm256_xor_si256(c2[4594],_mm256_xor_si256(c2[8113],_mm256_xor_si256(c2[38],_mm256_xor_si256(c2[4614],_mm256_xor_si256(c2[8132],_mm256_xor_si256(c2[10259],_mm256_xor_si256(c2[6738],_mm256_xor_si256(c2[6385],_mm256_xor_si256(c2[7794],_mm256_xor_si256(c2[9218],_mm256_xor_si256(c2[10272],_mm256_xor_si256(c2[6407],_mm256_xor_si256(c2[4295],_mm256_xor_si256(c2[786],_mm256_xor_si256(c2[1841],_mm256_xor_si256(c2[6770],_mm256_xor_si256(c2[2919],_mm256_xor_si256(c2[9601],_mm256_xor_si256(c2[7139],_mm256_xor_si256(c2[9973],_mm256_xor_si256(c2[1174],_mm256_xor_si256(c2[467],_mm256_xor_si256(c2[2242],_mm256_xor_si256(c2[5412],_mm256_xor_si256(c2[6118],_mm256_xor_si256(c2[8944],_mm256_xor_si256(c2[4020],_mm256_xor_si256(c2[10353],_mm256_xor_si256(c2[1222],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[2275],_mm256_xor_si256(c2[4402],_mm256_xor_si256(c2[9333],_mm256_xor_si256(c2[7217],_mm256_xor_si256(c2[7219],_mm256_xor_si256(c2[10404],_mm256_xor_si256(c2[1602],_mm256_xor_si256(c2[7238],_mm256_xor_si256(c2[2679],_mm256_xor_si256(c2[4435],_mm256_xor_si256(c2[9013],_mm256_xor_si256(c2[4098],_mm256_xor_si256(c2[11141],_mm256_xor_si256(c2[6213],_mm256_xor_si256(c2[597],_mm256_xor_si256(c2[947],_mm256_xor_si256(c2[11157],_mm256_xor_si256(c2[7655],_mm256_xor_si256(c2[4483],_mm256_xor_si256(c2[5190],_mm256_xor_si256(c2[9075],_mm256_xor_si256(c2[6966],_mm256_xor_si256(c2[3793],_mm256_xor_si256(c2[10148],_mm256_xor_si256(c2[4165],_mm256_xor_si256(c2[6630],_mm256_xor_si256(c2[656],_mm256_xor_si256(c2[10518],_mm256_xor_si256(c2[9110],_mm256_xor_si256(c2[4902],_mm256_xor_si256(c2[7010],_mm256_xor_si256(c2[5251],_mm256_xor_si256(c2[10551],_mm256_xor_si256(c2[9495],c2[3863]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 25
d2[200]=_mm256_xor_si256(c2[8112],_mm256_xor_si256(c2[2916],_mm256_xor_si256(c2[7155],c2[7973])));
//row: 26
d2[208]=_mm256_xor_si256(c2[1062],_mm256_xor_si256(c2[6727],_mm256_xor_si256(c2[8166],c2[10449])));
//row: 27
d2[216]=_mm256_xor_si256(c2[8816],_mm256_xor_si256(c2[2915],c2[838]));
//row: 28
d2[224]=_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[1829],_mm256_xor_si256(c2[7701],c2[11249])));
//row: 29
d2[232]=_mm256_xor_si256(c2[352],_mm256_xor_si256(c2[3168],_mm256_xor_si256(c2[5987],_mm256_xor_si256(c2[10915],_mm256_xor_si256(c2[4],_mm256_xor_si256(c2[4242],_mm256_xor_si256(c2[7763],_mm256_xor_si256(c2[10930],_mm256_xor_si256(c2[19],_mm256_xor_si256(c2[7762],_mm256_xor_si256(c2[3207],_mm256_xor_si256(c2[7783],_mm256_xor_si256(c2[38],_mm256_xor_si256(c2[2165],_mm256_xor_si256(c2[9907],_mm256_xor_si256(c2[9202],_mm256_xor_si256(c2[9554],_mm256_xor_si256(c2[1124],_mm256_xor_si256(c2[2178],_mm256_xor_si256(c2[9216],_mm256_xor_si256(c2[9568],_mm256_xor_si256(c2[3955],_mm256_xor_si256(c2[5010],_mm256_xor_si256(c2[9939],_mm256_xor_si256(c2[6080],_mm256_xor_si256(c2[1507],_mm256_xor_si256(c2[9956],_mm256_xor_si256(c2[10308],_mm256_xor_si256(c2[1879],_mm256_xor_si256(c2[4343],_mm256_xor_si256(c2[3284],_mm256_xor_si256(c2[3636],_mm256_xor_si256(c2[5411],_mm256_xor_si256(c2[8581],_mm256_xor_si256(c2[8935],_mm256_xor_si256(c2[9287],_mm256_xor_si256(c2[850],_mm256_xor_si256(c2[7189],_mm256_xor_si256(c2[2259],_mm256_xor_si256(c2[4391],_mm256_xor_si256(c2[5089],_mm256_xor_si256(c2[5092],_mm256_xor_si256(c2[5444],_mm256_xor_si256(c2[7571],_mm256_xor_si256(c2[1239],_mm256_xor_si256(c2[10034],_mm256_xor_si256(c2[10386],_mm256_xor_si256(c2[2310],_mm256_xor_si256(c2[4771],_mm256_xor_si256(c2[10055],_mm256_xor_si256(c2[10407],_mm256_xor_si256(c2[5840],_mm256_xor_si256(c2[7604],_mm256_xor_si256(c2[567],_mm256_xor_si256(c2[919],_mm256_xor_si256(c2[7267],_mm256_xor_si256(c2[3047],_mm256_xor_si256(c2[9030],_mm256_xor_si256(c2[9382],_mm256_xor_si256(c2[4455],_mm256_xor_si256(c2[3766],_mm256_xor_si256(c2[4116],_mm256_xor_si256(c2[3063],_mm256_xor_si256(c2[10816],_mm256_xor_si256(c2[7652],_mm256_xor_si256(c2[8007],_mm256_xor_si256(c2[8359],_mm256_xor_si256(c2[981],_mm256_xor_si256(c2[10135],_mm256_xor_si256(c2[6610],_mm256_xor_si256(c2[6962],_mm256_xor_si256(c2[2054],_mm256_xor_si256(c2[7334],_mm256_xor_si256(c2[9447],_mm256_xor_si256(c2[9799],_mm256_xor_si256(c2[7330],_mm256_xor_si256(c2[3825],_mm256_xor_si256(c2[2416],_mm256_xor_si256(c2[1008],_mm256_xor_si256(c2[8071],_mm256_xor_si256(c2[10179],_mm256_xor_si256(c2[8068],_mm256_xor_si256(c2[8420],_mm256_xor_si256(c2[2449],_mm256_xor_si256(c2[1393],_mm256_xor_si256(c2[6672],c2[7024]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 30
d2[240]=_mm256_xor_si256(c2[1408],_mm256_xor_si256(c2[4224],_mm256_xor_si256(c2[6691],_mm256_xor_si256(c2[7043],_mm256_xor_si256(c2[708],_mm256_xor_si256(c2[1060],_mm256_xor_si256(c2[8454],_mm256_xor_si256(c2[5298],_mm256_xor_si256(c2[8467],_mm256_xor_si256(c2[8819],_mm256_xor_si256(c2[723],_mm256_xor_si256(c2[1075],_mm256_xor_si256(c2[4263],_mm256_xor_si256(c2[8839],_mm256_xor_si256(c2[742],_mm256_xor_si256(c2[1094],_mm256_xor_si256(c2[3221],_mm256_xor_si256(c2[10963],_mm256_xor_si256(c2[10258],_mm256_xor_si256(c2[10610],_mm256_xor_si256(c2[2180],_mm256_xor_si256(c2[2882],_mm256_xor_si256(c2[3234],_mm256_xor_si256(c2[10272],_mm256_xor_si256(c2[10624],_mm256_xor_si256(c2[5011],_mm256_xor_si256(c2[6066],_mm256_xor_si256(c2[10643],_mm256_xor_si256(c2[10995],_mm256_xor_si256(c2[7136],_mm256_xor_si256(c2[2211],_mm256_xor_si256(c2[2563],_mm256_xor_si256(c2[11012],_mm256_xor_si256(c2[101],_mm256_xor_si256(c2[2935],_mm256_xor_si256(c2[5047],_mm256_xor_si256(c2[5399],_mm256_xor_si256(c2[4340],_mm256_xor_si256(c2[4692],_mm256_xor_si256(c2[6467],_mm256_xor_si256(c2[9285],_mm256_xor_si256(c2[9637],_mm256_xor_si256(c2[9991],_mm256_xor_si256(c2[10343],_mm256_xor_si256(c2[1906],_mm256_xor_si256(c2[8245],_mm256_xor_si256(c2[2963],_mm256_xor_si256(c2[3315],_mm256_xor_si256(c2[5447],_mm256_xor_si256(c2[5793],_mm256_xor_si256(c2[6145],_mm256_xor_si256(c2[6148],_mm256_xor_si256(c2[6500],_mm256_xor_si256(c2[3330],_mm256_xor_si256(c2[8627],_mm256_xor_si256(c2[2295],_mm256_xor_si256(c2[11090],_mm256_xor_si256(c2[179],_mm256_xor_si256(c2[3366],_mm256_xor_si256(c2[5827],_mm256_xor_si256(c2[11111],_mm256_xor_si256(c2[192],_mm256_xor_si256(c2[6896],_mm256_xor_si256(c2[8308],_mm256_xor_si256(c2[8660],_mm256_xor_si256(c2[1623],_mm256_xor_si256(c2[1975],_mm256_xor_si256(c2[8659],_mm256_xor_si256(c2[8323],_mm256_xor_si256(c2[3751],_mm256_xor_si256(c2[4103],_mm256_xor_si256(c2[10086],_mm256_xor_si256(c2[10438],_mm256_xor_si256(c2[4822],_mm256_xor_si256(c2[5172],_mm256_xor_si256(c2[3767],_mm256_xor_si256(c2[4119],_mm256_xor_si256(c2[609],_mm256_xor_si256(c2[8708],_mm256_xor_si256(c2[9063],_mm256_xor_si256(c2[9415],_mm256_xor_si256(c2[2037],_mm256_xor_si256(c2[10839],_mm256_xor_si256(c2[11191],_mm256_xor_si256(c2[7666],_mm256_xor_si256(c2[8018],_mm256_xor_si256(c2[3110],_mm256_xor_si256(c2[8038],_mm256_xor_si256(c2[8390],_mm256_xor_si256(c2[10503],_mm256_xor_si256(c2[10855],_mm256_xor_si256(c2[4881],_mm256_xor_si256(c2[3472],_mm256_xor_si256(c2[1712],_mm256_xor_si256(c2[2064],_mm256_xor_si256(c2[9127],_mm256_xor_si256(c2[10883],_mm256_xor_si256(c2[11235],_mm256_xor_si256(c2[9124],_mm256_xor_si256(c2[9476],_mm256_xor_si256(c2[3505],_mm256_xor_si256(c2[2449],_mm256_xor_si256(c2[7728],c2[8080])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 31
d2[248]=_mm256_xor_si256(c2[2117],_mm256_xor_si256(c2[8449],_mm256_xor_si256(c2[4933],_mm256_xor_si256(c2[2],_mm256_xor_si256(c2[7744],_mm256_xor_si256(c2[2821],_mm256_xor_si256(c2[1761],_mm256_xor_si256(c2[7749],_mm256_xor_si256(c2[8101],_mm256_xor_si256(c2[6007],_mm256_xor_si256(c2[1076],_mm256_xor_si256(c2[9520],_mm256_xor_si256(c2[4597],_mm256_xor_si256(c2[1776],_mm256_xor_si256(c2[7764],_mm256_xor_si256(c2[8116],_mm256_xor_si256(c2[10930],_mm256_xor_si256(c2[4964],_mm256_xor_si256(c2[33],_mm256_xor_si256(c2[9540],_mm256_xor_si256(c2[4609],_mm256_xor_si256(c2[1795],_mm256_xor_si256(c2[8135],_mm256_xor_si256(c2[3922],_mm256_xor_si256(c2[10262],_mm256_xor_si256(c2[401],_mm256_xor_si256(c2[6741],_mm256_xor_si256(c2[48],_mm256_xor_si256(c2[6036],_mm256_xor_si256(c2[6388],_mm256_xor_si256(c2[2881],_mm256_xor_si256(c2[9221],_mm256_xor_si256(c2[3943],_mm256_xor_si256(c2[10275],_mm256_xor_si256(c2[70],_mm256_xor_si256(c2[6050],_mm256_xor_si256(c2[6402],_mm256_xor_si256(c2[5712],_mm256_xor_si256(c2[789],_mm256_xor_si256(c2[6775],_mm256_xor_si256(c2[1844],_mm256_xor_si256(c2[433],_mm256_xor_si256(c2[6773],_mm256_xor_si256(c2[7845],_mm256_xor_si256(c2[2914],_mm256_xor_si256(c2[3264],_mm256_xor_si256(c2[9604],_mm256_xor_si256(c2[802],_mm256_xor_si256(c2[6790],_mm256_xor_si256(c2[7142],_mm256_xor_si256(c2[3636],_mm256_xor_si256(c2[9968],_mm256_xor_si256(c2[6100],_mm256_xor_si256(c2[1169],_mm256_xor_si256(c2[5393],_mm256_xor_si256(c2[118],_mm256_xor_si256(c2[470],_mm256_xor_si256(c2[6101],_mm256_xor_si256(c2[7168],_mm256_xor_si256(c2[2245],_mm256_xor_si256(c2[10338],_mm256_xor_si256(c2[5415],_mm256_xor_si256(c2[11044],_mm256_xor_si256(c2[5761],_mm256_xor_si256(c2[6113],_mm256_xor_si256(c2[2615],_mm256_xor_si256(c2[8947],_mm256_xor_si256(c2[8946],_mm256_xor_si256(c2[4023],_mm256_xor_si256(c2[4016],_mm256_xor_si256(c2[10356],_mm256_xor_si256(c2[6148],_mm256_xor_si256(c2[1217],_mm256_xor_si256(c2[6854],_mm256_xor_si256(c2[1923],_mm256_xor_si256(c2[7201],_mm256_xor_si256(c2[1926],_mm256_xor_si256(c2[2278],_mm256_xor_si256(c2[9328],_mm256_xor_si256(c2[4405],_mm256_xor_si256(c2[2996],_mm256_xor_si256(c2[9328],_mm256_xor_si256(c2[880],_mm256_xor_si256(c2[6868],_mm256_xor_si256(c2[7220],_mm256_xor_si256(c2[4067],_mm256_xor_si256(c2[10407],_mm256_xor_si256(c2[6528],_mm256_xor_si256(c2[1605],_mm256_xor_si256(c2[901],_mm256_xor_si256(c2[6881],_mm256_xor_si256(c2[7233],_mm256_xor_si256(c2[7605],_mm256_xor_si256(c2[2674],_mm256_xor_si256(c2[9361],_mm256_xor_si256(c2[4438],_mm256_xor_si256(c2[2676],_mm256_xor_si256(c2[8656],_mm256_xor_si256(c2[9008],_mm256_xor_si256(c2[9024],_mm256_xor_si256(c2[4101],_mm256_xor_si256(c2[4804],_mm256_xor_si256(c2[11136],_mm256_xor_si256(c2[11139],_mm256_xor_si256(c2[5856],_mm256_xor_si256(c2[6208],_mm256_xor_si256(c2[5523],_mm256_xor_si256(c2[592],_mm256_xor_si256(c2[5873],_mm256_xor_si256(c2[950],_mm256_xor_si256(c2[4820],_mm256_xor_si256(c2[11152],_mm256_xor_si256(c2[1318],_mm256_xor_si256(c2[7650],_mm256_xor_si256(c2[9409],_mm256_xor_si256(c2[4486],_mm256_xor_si256(c2[10116],_mm256_xor_si256(c2[4833],_mm256_xor_si256(c2[5185],_mm256_xor_si256(c2[2738],_mm256_xor_si256(c2[9078],_mm256_xor_si256(c2[629],_mm256_xor_si256(c2[6961],_mm256_xor_si256(c2[8727],_mm256_xor_si256(c2[3444],_mm256_xor_si256(c2[3796],_mm256_xor_si256(c2[3811],_mm256_xor_si256(c2[10151],_mm256_xor_si256(c2[9091],_mm256_xor_si256(c2[4160],_mm256_xor_si256(c2[293],_mm256_xor_si256(c2[6273],_mm256_xor_si256(c2[6625],_mm256_xor_si256(c2[5590],_mm256_xor_si256(c2[659],_mm256_xor_si256(c2[4181],_mm256_xor_si256(c2[10513],_mm256_xor_si256(c2[2773],_mm256_xor_si256(c2[9105],_mm256_xor_si256(c2[9828],_mm256_xor_si256(c2[4897],_mm256_xor_si256(c2[673],_mm256_xor_si256(c2[7013],_mm256_xor_si256(c2[10177],_mm256_xor_si256(c2[4902],_mm256_xor_si256(c2[5254],_mm256_xor_si256(c2[4214],_mm256_xor_si256(c2[10546],_mm256_xor_si256(c2[3158],_mm256_xor_si256(c2[9490],_mm256_xor_si256(c2[8789],_mm256_xor_si256(c2[3506],c2[3858]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 32
d2[256]=_mm256_xor_si256(c2[7043],_mm256_xor_si256(c2[9859],_mm256_xor_si256(c2[1063],_mm256_xor_si256(c2[1415],_mm256_xor_si256(c2[6343],_mm256_xor_si256(c2[6695],_mm256_xor_si256(c2[10214],_mm256_xor_si256(c2[10933],_mm256_xor_si256(c2[2839],_mm256_xor_si256(c2[3191],_mm256_xor_si256(c2[6358],_mm256_xor_si256(c2[6710],_mm256_xor_si256(c2[9890],_mm256_xor_si256(c2[3203],_mm256_xor_si256(c2[6369],_mm256_xor_si256(c2[6721],_mm256_xor_si256(c2[8848],_mm256_xor_si256(c2[5335],_mm256_xor_si256(c2[4630],_mm256_xor_si256(c2[4982],_mm256_xor_si256(c2[7815],_mm256_xor_si256(c2[8517],_mm256_xor_si256(c2[8869],_mm256_xor_si256(c2[4644],_mm256_xor_si256(c2[4996],_mm256_xor_si256(c2[10646],_mm256_xor_si256(c2[438],_mm256_xor_si256(c2[5015],_mm256_xor_si256(c2[5367],_mm256_xor_si256(c2[1508],_mm256_xor_si256(c2[7846],_mm256_xor_si256(c2[8198],_mm256_xor_si256(c2[5376],_mm256_xor_si256(c2[5728],_mm256_xor_si256(c2[8562],_mm256_xor_si256(c2[10674],_mm256_xor_si256(c2[11026],_mm256_xor_si256(c2[9975],_mm256_xor_si256(c2[10327],_mm256_xor_si256(c2[839],_mm256_xor_si256(c2[3649],_mm256_xor_si256(c2[4001],_mm256_xor_si256(c2[4355],_mm256_xor_si256(c2[4707],_mm256_xor_si256(c2[7541],_mm256_xor_si256(c2[2609],_mm256_xor_si256(c2[8598],_mm256_xor_si256(c2[8950],_mm256_xor_si256(c2[11074],_mm256_xor_si256(c2[165],_mm256_xor_si256(c2[517],_mm256_xor_si256(c2[512],_mm256_xor_si256(c2[864],_mm256_xor_si256(c2[2999],_mm256_xor_si256(c2[7922],_mm256_xor_si256(c2[5462],_mm256_xor_si256(c2[5814],_mm256_xor_si256(c2[8993],_mm256_xor_si256(c2[199],_mm256_xor_si256(c2[5475],_mm256_xor_si256(c2[5827],_mm256_xor_si256(c2[5827],_mm256_xor_si256(c2[1268],_mm256_xor_si256(c2[2672],_mm256_xor_si256(c2[3024],_mm256_xor_si256(c2[7250],_mm256_xor_si256(c2[7602],_mm256_xor_si256(c2[2695],_mm256_xor_si256(c2[9378],_mm256_xor_si256(c2[9730],_mm256_xor_si256(c2[4450],_mm256_xor_si256(c2[4802],_mm256_xor_si256(c2[2694],_mm256_xor_si256(c2[10449],_mm256_xor_si256(c2[10807],_mm256_xor_si256(c2[9394],_mm256_xor_si256(c2[9746],_mm256_xor_si256(c2[6244],_mm256_xor_si256(c2[3072],_mm256_xor_si256(c2[3427],_mm256_xor_si256(c2[3779],_mm256_xor_si256(c2[7664],_mm256_xor_si256(c2[5203],_mm256_xor_si256(c2[5555],_mm256_xor_si256(c2[2038],_mm256_xor_si256(c2[2390],_mm256_xor_si256(c2[8737],_mm256_xor_si256(c2[2402],_mm256_xor_si256(c2[2754],_mm256_xor_si256(c2[4867],_mm256_xor_si256(c2[5219],_mm256_xor_si256(c2[10516],_mm256_xor_si256(c2[9107],_mm256_xor_si256(c2[7347],_mm256_xor_si256(c2[7699],_mm256_xor_si256(c2[3491],_mm256_xor_si256(c2[5255],_mm256_xor_si256(c2[5607],_mm256_xor_si256(c2[3488],_mm256_xor_si256(c2[3840],_mm256_xor_si256(c2[9140],_mm256_xor_si256(c2[8084],_mm256_xor_si256(c2[2100],c2[2452])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 33
d2[264]=_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[9541],_mm256_xor_si256(c2[3345],c2[7030])));
//row: 34
d2[272]=_mm256_xor_si256(c2[10915],_mm256_xor_si256(c2[2581],_mm256_xor_si256(c2[1653],c2[11188])));
//row: 35
d2[280]=_mm256_xor_si256(c2[355],_mm256_xor_si256(c2[3171],_mm256_xor_si256(c2[5990],_mm256_xor_si256(c2[7],_mm256_xor_si256(c2[4245],_mm256_xor_si256(c2[7766],_mm256_xor_si256(c2[22],_mm256_xor_si256(c2[373],_mm256_xor_si256(c2[3202],_mm256_xor_si256(c2[7778],_mm256_xor_si256(c2[33],_mm256_xor_si256(c2[2160],_mm256_xor_si256(c2[9910],_mm256_xor_si256(c2[9557],_mm256_xor_si256(c2[1127],_mm256_xor_si256(c2[2181],_mm256_xor_si256(c2[9571],_mm256_xor_si256(c2[3958],_mm256_xor_si256(c2[5013],_mm256_xor_si256(c2[9942],_mm256_xor_si256(c2[6083],_mm256_xor_si256(c2[1510],_mm256_xor_si256(c2[10311],_mm256_xor_si256(c2[1862],_mm256_xor_si256(c2[1874],_mm256_xor_si256(c2[4338],_mm256_xor_si256(c2[3639],_mm256_xor_si256(c2[5414],_mm256_xor_si256(c2[8576],_mm256_xor_si256(c2[9282],_mm256_xor_si256(c2[853],_mm256_xor_si256(c2[7184],_mm256_xor_si256(c2[2262],_mm256_xor_si256(c2[4386],_mm256_xor_si256(c2[5092],_mm256_xor_si256(c2[5447],_mm256_xor_si256(c2[7574],_mm256_xor_si256(c2[1234],_mm256_xor_si256(c2[10389],_mm256_xor_si256(c2[2305],_mm256_xor_si256(c2[4774],_mm256_xor_si256(c2[10402],_mm256_xor_si256(c2[5478],_mm256_xor_si256(c2[5843],_mm256_xor_si256(c2[7607],_mm256_xor_si256(c2[914],_mm256_xor_si256(c2[7270],_mm256_xor_si256(c2[3042],_mm256_xor_si256(c2[9377],_mm256_xor_si256(c2[3761],_mm256_xor_si256(c2[4119],_mm256_xor_si256(c2[3058],_mm256_xor_si256(c2[10819],_mm256_xor_si256(c2[7655],_mm256_xor_si256(c2[8354],_mm256_xor_si256(c2[976],_mm256_xor_si256(c2[10130],_mm256_xor_si256(c2[6965],_mm256_xor_si256(c2[2049],_mm256_xor_si256(c2[7329],_mm256_xor_si256(c2[9794],_mm256_xor_si256(c2[3828],_mm256_xor_si256(c2[2419],_mm256_xor_si256(c2[1011],_mm256_xor_si256(c2[8066],_mm256_xor_si256(c2[10182],_mm256_xor_si256(c2[8423],_mm256_xor_si256(c2[2452],_mm256_xor_si256(c2[1396],c2[7027])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 36
d2[288]=_mm256_xor_si256(c2[1761],_mm256_xor_si256(c2[3395],_mm256_xor_si256(c2[6929],c2[8739])));
//row: 37
d2[296]=_mm256_xor_si256(c2[7043],_mm256_xor_si256(c2[7395],_mm256_xor_si256(c2[10211],_mm256_xor_si256(c2[1767],_mm256_xor_si256(c2[7047],_mm256_xor_si256(c2[10933],_mm256_xor_si256(c2[22],_mm256_xor_si256(c2[3543],_mm256_xor_si256(c2[7062],_mm256_xor_si256(c2[2134],_mm256_xor_si256(c2[9890],_mm256_xor_si256(c2[10242],_mm256_xor_si256(c2[3555],_mm256_xor_si256(c2[7073],_mm256_xor_si256(c2[8848],_mm256_xor_si256(c2[9200],_mm256_xor_si256(c2[5687],_mm256_xor_si256(c2[5334],_mm256_xor_si256(c2[8167],_mm256_xor_si256(c2[9221],_mm256_xor_si256(c2[5348],_mm256_xor_si256(c2[10646],_mm256_xor_si256(c2[10998],_mm256_xor_si256(c2[790],_mm256_xor_si256(c2[5719],_mm256_xor_si256(c2[1508],_mm256_xor_si256(c2[1860],_mm256_xor_si256(c2[8550],_mm256_xor_si256(c2[6080],_mm256_xor_si256(c2[8914],_mm256_xor_si256(c2[115],_mm256_xor_si256(c2[10679],_mm256_xor_si256(c2[1191],_mm256_xor_si256(c2[4353],_mm256_xor_si256(c2[5059],_mm256_xor_si256(c2[7541],_mm256_xor_si256(c2[7893],_mm256_xor_si256(c2[2961],_mm256_xor_si256(c2[9302],_mm256_xor_si256(c2[11074],_mm256_xor_si256(c2[163],_mm256_xor_si256(c2[869],_mm256_xor_si256(c2[1216],_mm256_xor_si256(c2[2999],_mm256_xor_si256(c2[3351],_mm256_xor_si256(c2[8274],_mm256_xor_si256(c2[6166],_mm256_xor_si256(c2[8993],_mm256_xor_si256(c2[9345],_mm256_xor_si256(c2[551],_mm256_xor_si256(c2[6179],_mm256_xor_si256(c2[1268],_mm256_xor_si256(c2[1620],_mm256_xor_si256(c2[3376],_mm256_xor_si256(c2[7954],_mm256_xor_si256(c2[10070],_mm256_xor_si256(c2[3047],_mm256_xor_si256(c2[10082],_mm256_xor_si256(c2[5154],_mm256_xor_si256(c2[10449],_mm256_xor_si256(c2[10801],_mm256_xor_si256(c2[11159],_mm256_xor_si256(c2[10098],_mm256_xor_si256(c2[6244],_mm256_xor_si256(c2[6596],_mm256_xor_si256(c2[3424],_mm256_xor_si256(c2[4131],_mm256_xor_si256(c2[8016],_mm256_xor_si256(c2[5907],_mm256_xor_si256(c2[2742],_mm256_xor_si256(c2[8737],_mm256_xor_si256(c2[9089],_mm256_xor_si256(c2[3106],_mm256_xor_si256(c2[5571],_mm256_xor_si256(c2[10516],_mm256_xor_si256(c2[10868],_mm256_xor_si256(c2[9459],_mm256_xor_si256(c2[8051],_mm256_xor_si256(c2[3491],_mm256_xor_si256(c2[3843],_mm256_xor_si256(c2[5959],_mm256_xor_si256(c2[4192],_mm256_xor_si256(c2[9140],_mm256_xor_si256(c2[9492],_mm256_xor_si256(c2[8436],c2[2804])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 38
d2[304]=_mm256_xor_si256(c2[2469],_mm256_xor_si256(c2[8244],_mm256_xor_si256(c2[10372],c2[1253])));
//row: 39
d2[312]=_mm256_xor_si256(c2[4597],_mm256_xor_si256(c2[3924],_mm256_xor_si256(c2[7508],c2[304])));
//row: 40
d2[320]=_mm256_xor_si256(c2[10212],_mm256_xor_si256(c2[3300],c2[7668]));
//row: 41
d2[328]=_mm256_xor_si256(c2[2485],_mm256_xor_si256(c2[4629],_mm256_xor_si256(c2[4020],c2[8388])));
//row: 42
d2[336]=_mm256_xor_si256(c2[1412],_mm256_xor_si256(c2[4228],_mm256_xor_si256(c2[6695],_mm256_xor_si256(c2[7047],_mm256_xor_si256(c2[704],_mm256_xor_si256(c2[1056],_mm256_xor_si256(c2[7396],_mm256_xor_si256(c2[5302],_mm256_xor_si256(c2[8471],_mm256_xor_si256(c2[8823],_mm256_xor_si256(c2[727],_mm256_xor_si256(c2[1079],_mm256_xor_si256(c2[4259],_mm256_xor_si256(c2[8835],_mm256_xor_si256(c2[738],_mm256_xor_si256(c2[1090],_mm256_xor_si256(c2[3217],_mm256_xor_si256(c2[10967],_mm256_xor_si256(c2[10262],_mm256_xor_si256(c2[10614],_mm256_xor_si256(c2[2176],_mm256_xor_si256(c2[2886],_mm256_xor_si256(c2[3238],_mm256_xor_si256(c2[10276],_mm256_xor_si256(c2[10628],_mm256_xor_si256(c2[10276],_mm256_xor_si256(c2[5015],_mm256_xor_si256(c2[6070],_mm256_xor_si256(c2[10647],_mm256_xor_si256(c2[10999],_mm256_xor_si256(c2[7140],_mm256_xor_si256(c2[2215],_mm256_xor_si256(c2[2567],_mm256_xor_si256(c2[11008],_mm256_xor_si256(c2[97],_mm256_xor_si256(c2[2931],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[5395],_mm256_xor_si256(c2[4336],_mm256_xor_si256(c2[4688],_mm256_xor_si256(c2[6471],_mm256_xor_si256(c2[9281],_mm256_xor_si256(c2[9633],_mm256_xor_si256(c2[9987],_mm256_xor_si256(c2[10339],_mm256_xor_si256(c2[1910],_mm256_xor_si256(c2[8241],_mm256_xor_si256(c2[2967],_mm256_xor_si256(c2[3319],_mm256_xor_si256(c2[5443],_mm256_xor_si256(c2[5797],_mm256_xor_si256(c2[6149],_mm256_xor_si256(c2[6144],_mm256_xor_si256(c2[6496],_mm256_xor_si256(c2[8631],_mm256_xor_si256(c2[2291],_mm256_xor_si256(c2[11094],_mm256_xor_si256(c2[183],_mm256_xor_si256(c2[3362],_mm256_xor_si256(c2[5831],_mm256_xor_si256(c2[11107],_mm256_xor_si256(c2[196],_mm256_xor_si256(c2[6900],_mm256_xor_si256(c2[8304],_mm256_xor_si256(c2[8656],_mm256_xor_si256(c2[1619],_mm256_xor_si256(c2[1971],_mm256_xor_si256(c2[8327],_mm256_xor_si256(c2[3747],_mm256_xor_si256(c2[4099],_mm256_xor_si256(c2[10082],_mm256_xor_si256(c2[10434],_mm256_xor_si256(c2[4818],_mm256_xor_si256(c2[5168],_mm256_xor_si256(c2[3763],_mm256_xor_si256(c2[4115],_mm256_xor_si256(c2[613],_mm256_xor_si256(c2[8704],_mm256_xor_si256(c2[9059],_mm256_xor_si256(c2[9411],_mm256_xor_si256(c2[2033],_mm256_xor_si256(c2[10835],_mm256_xor_si256(c2[11187],_mm256_xor_si256(c2[7670],_mm256_xor_si256(c2[8022],_mm256_xor_si256(c2[3106],_mm256_xor_si256(c2[8034],_mm256_xor_si256(c2[8386],_mm256_xor_si256(c2[10499],_mm256_xor_si256(c2[10851],_mm256_xor_si256(c2[4885],_mm256_xor_si256(c2[3476],_mm256_xor_si256(c2[1716],_mm256_xor_si256(c2[2068],_mm256_xor_si256(c2[9123],_mm256_xor_si256(c2[10887],_mm256_xor_si256(c2[11239],_mm256_xor_si256(c2[9120],_mm256_xor_si256(c2[9472],_mm256_xor_si256(c2[3509],_mm256_xor_si256(c2[2453],_mm256_xor_si256(c2[7732],c2[8084]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 43
d2[344]=_mm256_xor_si256(c2[2116],_mm256_xor_si256(c2[4932],_mm256_xor_si256(c2[7751],_mm256_xor_si256(c2[1408],_mm256_xor_si256(c2[1760],_mm256_xor_si256(c2[6006],_mm256_xor_si256(c2[9527],_mm256_xor_si256(c2[1431],_mm256_xor_si256(c2[1783],_mm256_xor_si256(c2[8116],_mm256_xor_si256(c2[4963],_mm256_xor_si256(c2[9539],_mm256_xor_si256(c2[1794],_mm256_xor_si256(c2[3921],_mm256_xor_si256(c2[400],_mm256_xor_si256(c2[10966],_mm256_xor_si256(c2[55],_mm256_xor_si256(c2[2880],_mm256_xor_si256(c2[3942],_mm256_xor_si256(c2[10980],_mm256_xor_si256(c2[69],_mm256_xor_si256(c2[5719],_mm256_xor_si256(c2[6774],_mm256_xor_si256(c2[432],_mm256_xor_si256(c2[7844],_mm256_xor_si256(c2[3271],_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[801],_mm256_xor_si256(c2[3635],_mm256_xor_si256(c2[6099],_mm256_xor_si256(c2[5040],_mm256_xor_si256(c2[5392],_mm256_xor_si256(c2[7175],_mm256_xor_si256(c2[10337],_mm256_xor_si256(c2[10691],_mm256_xor_si256(c2[11043],_mm256_xor_si256(c2[2614],_mm256_xor_si256(c2[8945],_mm256_xor_si256(c2[4023],_mm256_xor_si256(c2[6147],_mm256_xor_si256(c2[6853],_mm256_xor_si256(c2[6848],_mm256_xor_si256(c2[7200],_mm256_xor_si256(c2[9335],_mm256_xor_si256(c2[2995],_mm256_xor_si256(c2[535],_mm256_xor_si256(c2[887],_mm256_xor_si256(c2[4066],_mm256_xor_si256(c2[6535],_mm256_xor_si256(c2[548],_mm256_xor_si256(c2[900],_mm256_xor_si256(c2[7604],_mm256_xor_si256(c2[9360],_mm256_xor_si256(c2[2323],_mm256_xor_si256(c2[2675],_mm256_xor_si256(c2[9031],_mm256_xor_si256(c2[4803],_mm256_xor_si256(c2[10786],_mm256_xor_si256(c2[11138],_mm256_xor_si256(c2[5522],_mm256_xor_si256(c2[5872],_mm256_xor_si256(c2[4819],_mm256_xor_si256(c2[1317],_mm256_xor_si256(c2[9408],_mm256_xor_si256(c2[9763],_mm256_xor_si256(c2[10115],_mm256_xor_si256(c2[1317],_mm256_xor_si256(c2[2737],_mm256_xor_si256(c2[628],_mm256_xor_si256(c2[8374],_mm256_xor_si256(c2[8726],_mm256_xor_si256(c2[3810],_mm256_xor_si256(c2[9090],_mm256_xor_si256(c2[11203],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[4869],_mm256_xor_si256(c2[5589],_mm256_xor_si256(c2[4180],_mm256_xor_si256(c2[2772],_mm256_xor_si256(c2[9827],_mm256_xor_si256(c2[672],_mm256_xor_si256(c2[9824],_mm256_xor_si256(c2[10176],_mm256_xor_si256(c2[4213],_mm256_xor_si256(c2[3157],_mm256_xor_si256(c2[8436],c2[8788]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 44
d2[352]=_mm256_xor_si256(c2[2469],_mm256_xor_si256(c2[5285],_mm256_xor_si256(c2[8096],_mm256_xor_si256(c2[2113],_mm256_xor_si256(c2[3876],_mm256_xor_si256(c2[6359],_mm256_xor_si256(c2[9872],_mm256_xor_si256(c2[2128],_mm256_xor_si256(c2[5316],_mm256_xor_si256(c2[9892],_mm256_xor_si256(c2[2147],_mm256_xor_si256(c2[4274],_mm256_xor_si256(c2[753],_mm256_xor_si256(c2[400],_mm256_xor_si256(c2[3233],_mm256_xor_si256(c2[4295],_mm256_xor_si256(c2[422],_mm256_xor_si256(c2[6064],_mm256_xor_si256(c2[7127],_mm256_xor_si256(c2[785],_mm256_xor_si256(c2[8197],_mm256_xor_si256(c2[3616],_mm256_xor_si256(c2[1154],_mm256_xor_si256(c2[3988],_mm256_xor_si256(c2[6452],_mm256_xor_si256(c2[5745],_mm256_xor_si256(c2[10324],_mm256_xor_si256(c2[7520],_mm256_xor_si256(c2[10690],_mm256_xor_si256(c2[133],_mm256_xor_si256(c2[2967],_mm256_xor_si256(c2[9298],_mm256_xor_si256(c2[4368],_mm256_xor_si256(c2[1205],_mm256_xor_si256(c2[6500],_mm256_xor_si256(c2[7206],_mm256_xor_si256(c2[7553],_mm256_xor_si256(c2[9680],_mm256_xor_si256(c2[3348],_mm256_xor_si256(c2[1232],_mm256_xor_si256(c2[4419],_mm256_xor_si256(c2[6880],_mm256_xor_si256(c2[1253],_mm256_xor_si256(c2[7957],_mm256_xor_si256(c2[9713],_mm256_xor_si256(c2[3028],_mm256_xor_si256(c2[9376],_mm256_xor_si256(c2[5156],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[5875],_mm256_xor_si256(c2[6225],_mm256_xor_si256(c2[5172],_mm256_xor_si256(c2[1670],_mm256_xor_si256(c2[9761],_mm256_xor_si256(c2[10468],_mm256_xor_si256(c2[3090],_mm256_xor_si256(c2[981],_mm256_xor_si256(c2[9079],_mm256_xor_si256(c2[4163],_mm256_xor_si256(c2[9443],_mm256_xor_si256(c2[645],_mm256_xor_si256(c2[5942],_mm256_xor_si256(c2[4533],_mm256_xor_si256(c2[3125],_mm256_xor_si256(c2[10180],_mm256_xor_si256(c2[1025],_mm256_xor_si256(c2[10529],_mm256_xor_si256(c2[4566],_mm256_xor_si256(c2[3510],c2[9141])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 45
d2[360]=_mm256_xor_si256(c2[7412],_mm256_xor_si256(c2[8196],c2[2629]));
}
}