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=320, byte encoding
static inline void ldpc320_byte(uint8_t *c,uint8_t *d) {
__m256i *csimd=(__m256i *)c,*dsimd=(__m256i *)d;
__m256i *c2,*d2;
int i2;
for (i2=0; i2<10; i2++) {
c2=&csimd[i2];
d2=&dsimd[i2];
//row: 0
d2[0]=_mm256_xor_si256(c2[3962],_mm256_xor_si256(c2[6609],_mm256_xor_si256(c2[1762],_mm256_xor_si256(c2[12326],_mm256_xor_si256(c2[6620],_mm256_xor_si256(c2[3100],_mm256_xor_si256(c2[7066],_mm256_xor_si256(c2[3123],_mm256_xor_si256(c2[2689],_mm256_xor_si256(c2[7082],_mm256_xor_si256(c2[7541],_mm256_xor_si256(c2[11940],_mm256_xor_si256(c2[13260],_mm256_xor_si256(c2[2288],_mm256_xor_si256(c2[10648],_mm256_xor_si256(c2[2286],_mm256_xor_si256(c2[7147],_mm256_xor_si256(c2[545],_mm256_xor_si256(c2[2741],_mm256_xor_si256(c2[3201],_mm256_xor_si256(c2[1447],_mm256_xor_si256(c2[12881],_mm256_xor_si256(c2[2344],_mm256_xor_si256(c2[4546],_mm256_xor_si256(c2[6745],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[3686],_mm256_xor_si256(c2[6762],_mm256_xor_si256(c2[6780],_mm256_xor_si256(c2[7222],_mm256_xor_si256(c2[3262],_mm256_xor_si256(c2[1085],_mm256_xor_si256(c2[4603],_mm256_xor_si256(c2[11208],_mm256_xor_si256(c2[10346],_mm256_xor_si256(c2[664],_mm256_xor_si256(c2[6829],_mm256_xor_si256(c2[2005],_mm256_xor_si256(c2[5529],_mm256_xor_si256(c2[13007],_mm256_xor_si256(c2[2464],_mm256_xor_si256(c2[3349],_mm256_xor_si256(c2[2025],_mm256_xor_si256(c2[5562],_mm256_xor_si256(c2[12168],_mm256_xor_si256(c2[9521],_mm256_xor_si256(c2[4709],_mm256_xor_si256(c2[4708],_mm256_xor_si256(c2[6029],_mm256_xor_si256(c2[6483],_mm256_xor_si256(c2[3842],_mm256_xor_si256(c2[5601],_mm256_xor_si256(c2[8702],_mm256_xor_si256(c2[10905],_mm256_xor_si256(c2[12660],_mm256_xor_si256(c2[7843],_mm256_xor_si256(c2[10047],_mm256_xor_si256(c2[6082],_mm256_xor_si256(c2[7420],_mm256_xor_si256(c2[2148],_mm256_xor_si256(c2[3027],_mm256_xor_si256(c2[13165],_mm256_xor_si256(c2[9208],_mm256_xor_si256(c2[14049],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[6149],c2[2182]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 1
d2[10]=_mm256_xor_si256(c2[3962],_mm256_xor_si256(c2[4402],_mm256_xor_si256(c2[7049],_mm256_xor_si256(c2[2202],_mm256_xor_si256(c2[12766],_mm256_xor_si256(c2[6620],_mm256_xor_si256(c2[7060],_mm256_xor_si256(c2[3540],_mm256_xor_si256(c2[7506],_mm256_xor_si256(c2[3123],_mm256_xor_si256(c2[3563],_mm256_xor_si256(c2[3129],_mm256_xor_si256(c2[7522],_mm256_xor_si256(c2[7541],_mm256_xor_si256(c2[7981],_mm256_xor_si256(c2[12380],_mm256_xor_si256(c2[13700],_mm256_xor_si256(c2[2728],_mm256_xor_si256(c2[11088],_mm256_xor_si256(c2[2726],_mm256_xor_si256(c2[7147],_mm256_xor_si256(c2[7587],_mm256_xor_si256(c2[985],_mm256_xor_si256(c2[3181],_mm256_xor_si256(c2[3201],_mm256_xor_si256(c2[3641],_mm256_xor_si256(c2[1887],_mm256_xor_si256(c2[13321],_mm256_xor_si256(c2[2784],_mm256_xor_si256(c2[4986],_mm256_xor_si256(c2[7185],_mm256_xor_si256(c2[2360],_mm256_xor_si256(c2[4126],_mm256_xor_si256(c2[7202],_mm256_xor_si256(c2[6780],_mm256_xor_si256(c2[7220],_mm256_xor_si256(c2[7662],_mm256_xor_si256(c2[3702],_mm256_xor_si256(c2[1085],_mm256_xor_si256(c2[1525],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[11648],_mm256_xor_si256(c2[10346],_mm256_xor_si256(c2[10786],_mm256_xor_si256(c2[1104],_mm256_xor_si256(c2[7269],_mm256_xor_si256(c2[2005],_mm256_xor_si256(c2[2445],_mm256_xor_si256(c2[5969],_mm256_xor_si256(c2[13447],_mm256_xor_si256(c2[2464],_mm256_xor_si256(c2[2904],_mm256_xor_si256(c2[3789],_mm256_xor_si256(c2[2465],_mm256_xor_si256(c2[6002],_mm256_xor_si256(c2[12608],_mm256_xor_si256(c2[9961],_mm256_xor_si256(c2[4709],_mm256_xor_si256(c2[5149],_mm256_xor_si256(c2[5148],_mm256_xor_si256(c2[6469],_mm256_xor_si256(c2[6483],_mm256_xor_si256(c2[6923],_mm256_xor_si256(c2[4282],_mm256_xor_si256(c2[6041],_mm256_xor_si256(c2[9142],_mm256_xor_si256(c2[11345],_mm256_xor_si256(c2[13100],_mm256_xor_si256(c2[7843],_mm256_xor_si256(c2[8283],_mm256_xor_si256(c2[10487],_mm256_xor_si256(c2[6522],_mm256_xor_si256(c2[7420],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[2588],_mm256_xor_si256(c2[3467],_mm256_xor_si256(c2[13165],_mm256_xor_si256(c2[13605],_mm256_xor_si256(c2[9648],_mm256_xor_si256(c2[400],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[861],_mm256_xor_si256(c2[6589],c2[2622])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 2
d2[20]=_mm256_xor_si256(c2[4402],_mm256_xor_si256(c2[7049],_mm256_xor_si256(c2[1762],_mm256_xor_si256(c2[2202],_mm256_xor_si256(c2[12326],_mm256_xor_si256(c2[12766],_mm256_xor_si256(c2[7060],_mm256_xor_si256(c2[3100],_mm256_xor_si256(c2[3540],_mm256_xor_si256(c2[7066],_mm256_xor_si256(c2[7506],_mm256_xor_si256(c2[3563],_mm256_xor_si256(c2[3129],_mm256_xor_si256(c2[7082],_mm256_xor_si256(c2[7522],_mm256_xor_si256(c2[7981],_mm256_xor_si256(c2[12380],_mm256_xor_si256(c2[13260],_mm256_xor_si256(c2[13700],_mm256_xor_si256(c2[2728],_mm256_xor_si256(c2[10648],_mm256_xor_si256(c2[11088],_mm256_xor_si256(c2[2286],_mm256_xor_si256(c2[2726],_mm256_xor_si256(c2[7587],_mm256_xor_si256(c2[985],_mm256_xor_si256(c2[2741],_mm256_xor_si256(c2[3181],_mm256_xor_si256(c2[3641],_mm256_xor_si256(c2[1447],_mm256_xor_si256(c2[1887],_mm256_xor_si256(c2[12881],_mm256_xor_si256(c2[13321],_mm256_xor_si256(c2[2784],_mm256_xor_si256(c2[4546],_mm256_xor_si256(c2[4986],_mm256_xor_si256(c2[6745],_mm256_xor_si256(c2[7185],_mm256_xor_si256(c2[2360],_mm256_xor_si256(c2[3686],_mm256_xor_si256(c2[4126],_mm256_xor_si256(c2[6762],_mm256_xor_si256(c2[7202],_mm256_xor_si256(c2[7220],_mm256_xor_si256(c2[7662],_mm256_xor_si256(c2[3262],_mm256_xor_si256(c2[3702],_mm256_xor_si256(c2[1525],_mm256_xor_si256(c2[4603],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[11208],_mm256_xor_si256(c2[11648],_mm256_xor_si256(c2[10786],_mm256_xor_si256(c2[1104],_mm256_xor_si256(c2[6829],_mm256_xor_si256(c2[7269],_mm256_xor_si256(c2[2445],_mm256_xor_si256(c2[5969],_mm256_xor_si256(c2[13007],_mm256_xor_si256(c2[13447],_mm256_xor_si256(c2[2904],_mm256_xor_si256(c2[3349],_mm256_xor_si256(c2[3789],_mm256_xor_si256(c2[2025],_mm256_xor_si256(c2[2465],_mm256_xor_si256(c2[6002],_mm256_xor_si256(c2[12168],_mm256_xor_si256(c2[12608],_mm256_xor_si256(c2[9521],_mm256_xor_si256(c2[9961],_mm256_xor_si256(c2[5149],_mm256_xor_si256(c2[5148],_mm256_xor_si256(c2[6029],_mm256_xor_si256(c2[6469],_mm256_xor_si256(c2[6923],_mm256_xor_si256(c2[4282],_mm256_xor_si256(c2[5601],_mm256_xor_si256(c2[6041],_mm256_xor_si256(c2[9142],_mm256_xor_si256(c2[10905],_mm256_xor_si256(c2[11345],_mm256_xor_si256(c2[12660],_mm256_xor_si256(c2[13100],_mm256_xor_si256(c2[8283],_mm256_xor_si256(c2[10047],_mm256_xor_si256(c2[10487],_mm256_xor_si256(c2[6082],_mm256_xor_si256(c2[6522],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[2588],_mm256_xor_si256(c2[3027],_mm256_xor_si256(c2[3467],_mm256_xor_si256(c2[13605],_mm256_xor_si256(c2[9208],_mm256_xor_si256(c2[9648],_mm256_xor_si256(c2[14049],_mm256_xor_si256(c2[400],_mm256_xor_si256(c2[861],_mm256_xor_si256(c2[6589],_mm256_xor_si256(c2[2182],c2[2622]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 3
d2[30]=_mm256_xor_si256(c2[4402],_mm256_xor_si256(c2[7049],_mm256_xor_si256(c2[2202],_mm256_xor_si256(c2[12326],_mm256_xor_si256(c2[12766],_mm256_xor_si256(c2[7060],_mm256_xor_si256(c2[3540],_mm256_xor_si256(c2[7066],_mm256_xor_si256(c2[7506],_mm256_xor_si256(c2[3563],_mm256_xor_si256(c2[3129],_mm256_xor_si256(c2[7522],_mm256_xor_si256(c2[7981],_mm256_xor_si256(c2[12380],_mm256_xor_si256(c2[13260],_mm256_xor_si256(c2[13700],_mm256_xor_si256(c2[2728],_mm256_xor_si256(c2[11088],_mm256_xor_si256(c2[2286],_mm256_xor_si256(c2[2726],_mm256_xor_si256(c2[7587],_mm256_xor_si256(c2[985],_mm256_xor_si256(c2[3181],_mm256_xor_si256(c2[3641],_mm256_xor_si256(c2[1887],_mm256_xor_si256(c2[12881],_mm256_xor_si256(c2[13321],_mm256_xor_si256(c2[2784],_mm256_xor_si256(c2[4986],_mm256_xor_si256(c2[6745],_mm256_xor_si256(c2[7185],_mm256_xor_si256(c2[2360],_mm256_xor_si256(c2[4126],_mm256_xor_si256(c2[6762],_mm256_xor_si256(c2[7202],_mm256_xor_si256(c2[7220],_mm256_xor_si256(c2[7662],_mm256_xor_si256(c2[3702],_mm256_xor_si256(c2[1525],_mm256_xor_si256(c2[5043],_mm256_xor_si256(c2[11208],_mm256_xor_si256(c2[11648],_mm256_xor_si256(c2[10786],_mm256_xor_si256(c2[1104],_mm256_xor_si256(c2[6829],_mm256_xor_si256(c2[7269],_mm256_xor_si256(c2[2445],_mm256_xor_si256(c2[5969],_mm256_xor_si256(c2[13007],_mm256_xor_si256(c2[13447],_mm256_xor_si256(c2[2904],_mm256_xor_si256(c2[3789],_mm256_xor_si256(c2[2025],_mm256_xor_si256(c2[2465],_mm256_xor_si256(c2[6002],_mm256_xor_si256(c2[12608],_mm256_xor_si256(c2[9521],_mm256_xor_si256(c2[9961],_mm256_xor_si256(c2[5149],_mm256_xor_si256(c2[5148],_mm256_xor_si256(c2[6469],_mm256_xor_si256(c2[6923],_mm256_xor_si256(c2[4282],_mm256_xor_si256(c2[5601],_mm256_xor_si256(c2[6041],_mm256_xor_si256(c2[9142],_mm256_xor_si256(c2[11345],_mm256_xor_si256(c2[12660],_mm256_xor_si256(c2[13100],_mm256_xor_si256(c2[8283],_mm256_xor_si256(c2[10487],_mm256_xor_si256(c2[6082],_mm256_xor_si256(c2[6522],_mm256_xor_si256(c2[7860],_mm256_xor_si256(c2[2588],_mm256_xor_si256(c2[3467],_mm256_xor_si256(c2[13605],_mm256_xor_si256(c2[9648],_mm256_xor_si256(c2[14049],_mm256_xor_si256(c2[400],_mm256_xor_si256(c2[861],_mm256_xor_si256(c2[6589],_mm256_xor_si256(c2[2182],c2[2622])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 4
d2[40]=_mm256_xor_si256(c2[3967],c2[5746]);
//row: 5
d2[50]=_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[2648],_mm256_xor_si256(c2[11880],_mm256_xor_si256(c2[8365],_mm256_xor_si256(c2[8362],_mm256_xor_si256(c2[2669],_mm256_xor_si256(c2[13228],_mm256_xor_si256(c2[3105],_mm256_xor_si256(c2[1789],_mm256_xor_si256(c2[13241],_mm256_xor_si256(c2[12807],_mm256_xor_si256(c2[3121],_mm256_xor_si256(c2[3580],_mm256_xor_si256(c2[7989],_mm256_xor_si256(c2[9309],_mm256_xor_si256(c2[7981],_mm256_xor_si256(c2[12406],_mm256_xor_si256(c2[6687],_mm256_xor_si256(c2[12404],_mm256_xor_si256(c2[3186],_mm256_xor_si256(c2[10663],_mm256_xor_si256(c2[12869],_mm256_xor_si256(c2[13329],_mm256_xor_si256(c2[11565],_mm256_xor_si256(c2[8920],_mm256_xor_si256(c2[12462],_mm256_xor_si256(c2[585],_mm256_xor_si256(c2[2784],_mm256_xor_si256(c2[12048],_mm256_xor_si256(c2[13804],_mm256_xor_si256(c2[2801],_mm256_xor_si256(c2[2829],_mm256_xor_si256(c2[3261],_mm256_xor_si256(c2[13380],_mm256_xor_si256(c2[11203],_mm256_xor_si256(c2[642],_mm256_xor_si256(c2[7247],_mm256_xor_si256(c2[6385],_mm256_xor_si256(c2[10782],_mm256_xor_si256(c2[2868],_mm256_xor_si256(c2[12123],_mm256_xor_si256(c2[1568],_mm256_xor_si256(c2[9046],_mm256_xor_si256(c2[13449],_mm256_xor_si256(c2[12582],_mm256_xor_si256(c2[13467],_mm256_xor_si256(c2[12143],_mm256_xor_si256(c2[1601],_mm256_xor_si256(c2[8207],_mm256_xor_si256(c2[5560],_mm256_xor_si256(c2[748],_mm256_xor_si256(c2[747],_mm256_xor_si256(c2[2068],_mm256_xor_si256(c2[2522],_mm256_xor_si256(c2[13960],_mm256_xor_si256(c2[1640],_mm256_xor_si256(c2[4286],_mm256_xor_si256(c2[4741],_mm256_xor_si256(c2[6944],_mm256_xor_si256(c2[8709],_mm256_xor_si256(c2[3882],_mm256_xor_si256(c2[6086],_mm256_xor_si256(c2[2121],_mm256_xor_si256(c2[3469],_mm256_xor_si256(c2[12266],_mm256_xor_si256(c2[13145],_mm256_xor_si256(c2[9204],_mm256_xor_si256(c2[5247],_mm256_xor_si256(c2[10088],_mm256_xor_si256(c2[10549],_mm256_xor_si256(c2[2188],_mm256_xor_si256(c2[12300],c2[5268]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 6
d2[60]=_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[9360],_mm256_xor_si256(c2[2409],_mm256_xor_si256(c2[5940],_mm256_xor_si256(c2[3787],_mm256_xor_si256(c2[6509],_mm256_xor_si256(c2[4764],c2[5247])))))));
//row: 7
d2[70]=_mm256_xor_si256(c2[5280],_mm256_xor_si256(c2[10582],_mm256_xor_si256(c2[6686],_mm256_xor_si256(c2[8061],_mm256_xor_si256(c2[11160],c2[5562])))));
//row: 8
d2[80]=_mm256_xor_si256(c2[13209],_mm256_xor_si256(c2[1767],_mm256_xor_si256(c2[1767],_mm256_xor_si256(c2[4404],_mm256_xor_si256(c2[11009],_mm256_xor_si256(c2[13206],_mm256_xor_si256(c2[13646],_mm256_xor_si256(c2[7484],_mm256_xor_si256(c2[9681],_mm256_xor_si256(c2[10121],_mm256_xor_si256(c2[3089],_mm256_xor_si256(c2[1788],_mm256_xor_si256(c2[4425],_mm256_xor_si256(c2[12347],_mm256_xor_si256(c2[465],_mm256_xor_si256(c2[905],_mm256_xor_si256(c2[2224],_mm256_xor_si256(c2[4421],_mm256_xor_si256(c2[4861],_mm256_xor_si256(c2[2224],_mm256_xor_si256(c2[12360],_mm256_xor_si256(c2[928],_mm256_xor_si256(c2[11926],_mm256_xor_si256(c2[484],_mm256_xor_si256(c2[2240],_mm256_xor_si256(c2[4447],_mm256_xor_si256(c2[4887],_mm256_xor_si256(c2[2709],_mm256_xor_si256(c2[5346],_mm256_xor_si256(c2[7108],_mm256_xor_si256(c2[9745],_mm256_xor_si256(c2[8428],_mm256_xor_si256(c2[10625],_mm256_xor_si256(c2[11065],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[11525],_mm256_xor_si256(c2[83],_mm256_xor_si256(c2[5806],_mm256_xor_si256(c2[8003],_mm256_xor_si256(c2[8443],_mm256_xor_si256(c2[11523],_mm256_xor_si256(c2[13720],_mm256_xor_si256(c2[81],_mm256_xor_si256(c2[2305],_mm256_xor_si256(c2[4942],_mm256_xor_si256(c2[9782],_mm256_xor_si256(c2[12429],_mm256_xor_si256(c2[11988],_mm256_xor_si256(c2[106],_mm256_xor_si256(c2[546],_mm256_xor_si256(c2[12448],_mm256_xor_si256(c2[1006],_mm256_xor_si256(c2[10684],_mm256_xor_si256(c2[12881],_mm256_xor_si256(c2[13321],_mm256_xor_si256(c2[8049],_mm256_xor_si256(c2[10246],_mm256_xor_si256(c2[10686],_mm256_xor_si256(c2[11581],_mm256_xor_si256(c2[149],_mm256_xor_si256(c2[13783],_mm256_xor_si256(c2[1901],_mm256_xor_si256(c2[2341],_mm256_xor_si256(c2[1903],_mm256_xor_si256(c2[4100],_mm256_xor_si256(c2[4540],_mm256_xor_si256(c2[11167],_mm256_xor_si256(c2[13804],_mm256_xor_si256(c2[12923],_mm256_xor_si256(c2[1041],_mm256_xor_si256(c2[1481],_mm256_xor_si256(c2[1920],_mm256_xor_si256(c2[4127],_mm256_xor_si256(c2[4567],_mm256_xor_si256(c2[1948],_mm256_xor_si256(c2[4585],_mm256_xor_si256(c2[2380],_mm256_xor_si256(c2[5027],_mm256_xor_si256(c2[12509],_mm256_xor_si256(c2[627],_mm256_xor_si256(c2[1067],_mm256_xor_si256(c2[10322],_mm256_xor_si256(c2[12969],_mm256_xor_si256(c2[13840],_mm256_xor_si256(c2[1968],_mm256_xor_si256(c2[2408],_mm256_xor_si256(c2[6366],_mm256_xor_si256(c2[8563],_mm256_xor_si256(c2[9003],_mm256_xor_si256(c2[5504],_mm256_xor_si256(c2[8141],_mm256_xor_si256(c2[9901],_mm256_xor_si256(c2[12548],_mm256_xor_si256(c2[1987],_mm256_xor_si256(c2[4184],_mm256_xor_si256(c2[4624],_mm256_xor_si256(c2[11242],_mm256_xor_si256(c2[13889],_mm256_xor_si256(c2[687],_mm256_xor_si256(c2[3324],_mm256_xor_si256(c2[8165],_mm256_xor_si256(c2[10362],_mm256_xor_si256(c2[10802],_mm256_xor_si256(c2[3327],_mm256_xor_si256(c2[11701],_mm256_xor_si256(c2[269],_mm256_xor_si256(c2[12586],_mm256_xor_si256(c2[704],_mm256_xor_si256(c2[1144],_mm256_xor_si256(c2[11262],_mm256_xor_si256(c2[13469],_mm256_xor_si256(c2[13909],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[3367],_mm256_xor_si256(c2[7326],_mm256_xor_si256(c2[9523],_mm256_xor_si256(c2[9963],_mm256_xor_si256(c2[4689],_mm256_xor_si256(c2[6886],_mm256_xor_si256(c2[7326],_mm256_xor_si256(c2[13946],_mm256_xor_si256(c2[2504],_mm256_xor_si256(c2[13945],_mm256_xor_si256(c2[2503],_mm256_xor_si256(c2[1187],_mm256_xor_si256(c2[3384],_mm256_xor_si256(c2[3824],_mm256_xor_si256(c2[1641],_mm256_xor_si256(c2[4288],_mm256_xor_si256(c2[13089],_mm256_xor_si256(c2[1647],_mm256_xor_si256(c2[769],_mm256_xor_si256(c2[2966],_mm256_xor_si256(c2[3406],_mm256_xor_si256(c2[3849],_mm256_xor_si256(c2[3860],_mm256_xor_si256(c2[6507],_mm256_xor_si256(c2[6063],_mm256_xor_si256(c2[8260],_mm256_xor_si256(c2[8700],_mm256_xor_si256(c2[7828],_mm256_xor_si256(c2[10025],_mm256_xor_si256(c2[10465],_mm256_xor_si256(c2[3001],_mm256_xor_si256(c2[5648],_mm256_xor_si256(c2[5205],_mm256_xor_si256(c2[7402],_mm256_xor_si256(c2[7842],_mm256_xor_si256(c2[1240],_mm256_xor_si256(c2[3447],_mm256_xor_si256(c2[3887],_mm256_xor_si256(c2[2588],_mm256_xor_si256(c2[5225],_mm256_xor_si256(c2[11385],_mm256_xor_si256(c2[14022],_mm256_xor_si256(c2[12264],_mm256_xor_si256(c2[382],_mm256_xor_si256(c2[822],_mm256_xor_si256(c2[6543],_mm256_xor_si256(c2[8323],_mm256_xor_si256(c2[10960],_mm256_xor_si256(c2[4366],_mm256_xor_si256(c2[6563],_mm256_xor_si256(c2[7003],_mm256_xor_si256(c2[9207],_mm256_xor_si256(c2[11404],_mm256_xor_si256(c2[11844],_mm256_xor_si256(c2[9668],_mm256_xor_si256(c2[12305],_mm256_xor_si256(c2[1307],_mm256_xor_si256(c2[3944],_mm256_xor_si256(c2[11429],_mm256_xor_si256(c2[13626],_mm256_xor_si256(c2[14066],c2[6148]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 9
d2[90]=_mm256_xor_si256(c2[12765],_mm256_xor_si256(c2[8827],_mm256_xor_si256(c2[1961],_mm256_xor_si256(c2[13428],_mm256_xor_si256(c2[10384],_mm256_xor_si256(c2[5188],_mm256_xor_si256(c2[3444],c2[7886])))))));
//row: 10
d2[100]=_mm256_xor_si256(c2[6180],_mm256_xor_si256(c2[7082],_mm256_xor_si256(c2[8446],_mm256_xor_si256(c2[4982],_mm256_xor_si256(c2[605],c2[10409])))));
//row: 11
d2[110]=_mm256_xor_si256(c2[8803],_mm256_xor_si256(c2[441],_mm256_xor_si256(c2[881],_mm256_xor_si256(c2[11440],_mm256_xor_si256(c2[3528],_mm256_xor_si256(c2[6603],_mm256_xor_si256(c2[12760],_mm256_xor_si256(c2[3088],_mm256_xor_si256(c2[9245],_mm256_xor_si256(c2[7040],_mm256_xor_si256(c2[11461],_mm256_xor_si256(c2[3109],_mm256_xor_si256(c2[3549],_mm256_xor_si256(c2[7941],_mm256_xor_si256(c2[29],_mm256_xor_si256(c2[11907],_mm256_xor_si256(c2[3985],_mm256_xor_si256(c2[8384],_mm256_xor_si256(c2[7964],_mm256_xor_si256(c2[13681],_mm256_xor_si256(c2[42],_mm256_xor_si256(c2[7520],_mm256_xor_si256(c2[13687],_mm256_xor_si256(c2[11923],_mm256_xor_si256(c2[4001],_mm256_xor_si256(c2[12382],_mm256_xor_si256(c2[4020],_mm256_xor_si256(c2[4460],_mm256_xor_si256(c2[2702],_mm256_xor_si256(c2[8869],_mm256_xor_si256(c2[4022],_mm256_xor_si256(c2[10189],_mm256_xor_si256(c2[7129],_mm256_xor_si256(c2[13286],_mm256_xor_si256(c2[1400],_mm256_xor_si256(c2[7567],_mm256_xor_si256(c2[7127],_mm256_xor_si256(c2[13284],_mm256_xor_si256(c2[11988],_mm256_xor_si256(c2[3626],_mm256_xor_si256(c2[4066],_mm256_xor_si256(c2[5386],_mm256_xor_si256(c2[11543],_mm256_xor_si256(c2[7582],_mm256_xor_si256(c2[13749],_mm256_xor_si256(c2[8042],_mm256_xor_si256(c2[13769],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[6288],_mm256_xor_si256(c2[12445],_mm256_xor_si256(c2[3643],_mm256_xor_si256(c2[9800],_mm256_xor_si256(c2[7185],_mm256_xor_si256(c2[13342],_mm256_xor_si256(c2[9387],_mm256_xor_si256(c2[1465],_mm256_xor_si256(c2[11586],_mm256_xor_si256(c2[3664],_mm256_xor_si256(c2[6761],_mm256_xor_si256(c2[12928],_mm256_xor_si256(c2[8527],_mm256_xor_si256(c2[605],_mm256_xor_si256(c2[11603],_mm256_xor_si256(c2[3681],_mm256_xor_si256(c2[11621],_mm256_xor_si256(c2[3269],_mm256_xor_si256(c2[3709],_mm256_xor_si256(c2[12063],_mm256_xor_si256(c2[4141],_mm256_xor_si256(c2[8103],_mm256_xor_si256(c2[181],_mm256_xor_si256(c2[5926],_mm256_xor_si256(c2[11643],_mm256_xor_si256(c2[12083],_mm256_xor_si256(c2[9444],_mm256_xor_si256(c2[1522],_mm256_xor_si256(c2[1960],_mm256_xor_si256(c2[8127],_mm256_xor_si256(c2[1108],_mm256_xor_si256(c2[6825],_mm256_xor_si256(c2[7265],_mm256_xor_si256(c2[5505],_mm256_xor_si256(c2[11662],_mm256_xor_si256(c2[11660],_mm256_xor_si256(c2[3748],_mm256_xor_si256(c2[6846],_mm256_xor_si256(c2[12563],_mm256_xor_si256(c2[13003],_mm256_xor_si256(c2[10360],_mm256_xor_si256(c2[2448],_mm256_xor_si256(c2[3769],_mm256_xor_si256(c2[9926],_mm256_xor_si256(c2[1129],_mm256_xor_si256(c2[7305],_mm256_xor_si256(c2[13022],_mm256_xor_si256(c2[13462],_mm256_xor_si256(c2[8180],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[6866],_mm256_xor_si256(c2[13023],_mm256_xor_si256(c2[10403],_mm256_xor_si256(c2[2481],_mm256_xor_si256(c2[2920],_mm256_xor_si256(c2[9087],_mm256_xor_si256(c2[283],_mm256_xor_si256(c2[6440],_mm256_xor_si256(c2[9540],_mm256_xor_si256(c2[1188],_mm256_xor_si256(c2[1628],_mm256_xor_si256(c2[9549],_mm256_xor_si256(c2[1627],_mm256_xor_si256(c2[10860],_mm256_xor_si256(c2[2948],_mm256_xor_si256(c2[11324],_mm256_xor_si256(c2[2962],_mm256_xor_si256(c2[3402],_mm256_xor_si256(c2[8683],_mm256_xor_si256(c2[761],_mm256_xor_si256(c2[10442],_mm256_xor_si256(c2[2520],_mm256_xor_si256(c2[769],_mm256_xor_si256(c2[13543],_mm256_xor_si256(c2[5621],_mm256_xor_si256(c2[1667],_mm256_xor_si256(c2[7824],_mm256_xor_si256(c2[3422],_mm256_xor_si256(c2[9589],_mm256_xor_si256(c2[12684],_mm256_xor_si256(c2[4322],_mm256_xor_si256(c2[4762],_mm256_xor_si256(c2[809],_mm256_xor_si256(c2[6966],_mm256_xor_si256(c2[10923],_mm256_xor_si256(c2[3001],_mm256_xor_si256(c2[12261],_mm256_xor_si256(c2[3909],_mm256_xor_si256(c2[4349],_mm256_xor_si256(c2[6989],_mm256_xor_si256(c2[13146],_mm256_xor_si256(c2[7868],_mm256_xor_si256(c2[14025],_mm256_xor_si256(c2[3927],_mm256_xor_si256(c2[9644],_mm256_xor_si256(c2[10084],_mm256_xor_si256(c2[14049],_mm256_xor_si256(c2[6127],_mm256_xor_si256(c2[4801],_mm256_xor_si256(c2[10968],_mm256_xor_si256(c2[5262],_mm256_xor_si256(c2[10989],_mm256_xor_si256(c2[11429],_mm256_xor_si256(c2[10980],_mm256_xor_si256(c2[3068],_mm256_xor_si256(c2[7023],_mm256_xor_si256(c2[13180],c2[7905])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 12
d2[120]=_mm256_xor_si256(c2[2207],_mm256_xor_si256(c2[4867],_mm256_xor_si256(c2[4165],_mm256_xor_si256(c2[7261],_mm256_xor_si256(c2[4223],c2[9161])))));
//row: 13
d2[130]=_mm256_xor_si256(c2[6163],_mm256_xor_si256(c2[6603],_mm256_xor_si256(c2[9240],_mm256_xor_si256(c2[4403],_mm256_xor_si256(c2[888],_mm256_xor_si256(c2[3081],_mm256_xor_si256(c2[8821],_mm256_xor_si256(c2[9261],_mm256_xor_si256(c2[5741],_mm256_xor_si256(c2[9707],_mm256_xor_si256(c2[5324],_mm256_xor_si256(c2[5764],_mm256_xor_si256(c2[5320],_mm256_xor_si256(c2[9723],_mm256_xor_si256(c2[9742],_mm256_xor_si256(c2[10182],_mm256_xor_si256(c2[502],_mm256_xor_si256(c2[1822],_mm256_xor_si256(c2[6229],_mm256_xor_si256(c2[4929],_mm256_xor_si256(c2[13289],_mm256_xor_si256(c2[4927],_mm256_xor_si256(c2[9348],_mm256_xor_si256(c2[9788],_mm256_xor_si256(c2[3186],_mm256_xor_si256(c2[5382],_mm256_xor_si256(c2[5402],_mm256_xor_si256(c2[5842],_mm256_xor_si256(c2[4088],_mm256_xor_si256(c2[1443],_mm256_xor_si256(c2[4985],_mm256_xor_si256(c2[7187],_mm256_xor_si256(c2[9386],_mm256_xor_si256(c2[6749],_mm256_xor_si256(c2[4561],_mm256_xor_si256(c2[6327],_mm256_xor_si256(c2[9403],_mm256_xor_si256(c2[8981],_mm256_xor_si256(c2[9421],_mm256_xor_si256(c2[9863],_mm256_xor_si256(c2[5903],_mm256_xor_si256(c2[3286],_mm256_xor_si256(c2[3726],_mm256_xor_si256(c2[7244],_mm256_xor_si256(c2[13849],_mm256_xor_si256(c2[12547],_mm256_xor_si256(c2[12987],_mm256_xor_si256(c2[3305],_mm256_xor_si256(c2[9460],_mm256_xor_si256(c2[4206],_mm256_xor_si256(c2[4646],_mm256_xor_si256(c2[8160],_mm256_xor_si256(c2[1569],_mm256_xor_si256(c2[4665],_mm256_xor_si256(c2[5105],_mm256_xor_si256(c2[5980],_mm256_xor_si256(c2[4666],_mm256_xor_si256(c2[8203],_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[12162],_mm256_xor_si256(c2[6900],_mm256_xor_si256(c2[7340],_mm256_xor_si256(c2[7349],_mm256_xor_si256(c2[8660],_mm256_xor_si256(c2[8684],_mm256_xor_si256(c2[9124],_mm256_xor_si256(c2[6483],_mm256_xor_si256(c2[8242],_mm256_xor_si256(c2[11343],_mm256_xor_si256(c2[13546],_mm256_xor_si256(c2[1222],_mm256_xor_si256(c2[10044],_mm256_xor_si256(c2[10484],_mm256_xor_si256(c2[12688],_mm256_xor_si256(c2[8723],_mm256_xor_si256(c2[9621],_mm256_xor_si256(c2[10061],_mm256_xor_si256(c2[4789],_mm256_xor_si256(c2[5668],_mm256_xor_si256(c2[1287],_mm256_xor_si256(c2[1727],_mm256_xor_si256(c2[11849],_mm256_xor_si256(c2[2601],_mm256_xor_si256(c2[405],_mm256_xor_si256(c2[2622],_mm256_xor_si256(c2[3062],_mm256_xor_si256(c2[8780],c2[4823])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 14
d2[140]=_mm256_xor_si256(c2[6162],_mm256_xor_si256(c2[5089],_mm256_xor_si256(c2[9981],_mm256_xor_si256(c2[13081],_mm256_xor_si256(c2[8705],c2[1308])))));
//row: 15
d2[150]=_mm256_xor_si256(c2[12763],_mm256_xor_si256(c2[1321],_mm256_xor_si256(c2[10563],_mm256_xor_si256(c2[6608],_mm256_xor_si256(c2[7048],_mm256_xor_si256(c2[2207],_mm256_xor_si256(c2[1342],_mm256_xor_si256(c2[11901],_mm256_xor_si256(c2[1348],_mm256_xor_si256(c2[1788],_mm256_xor_si256(c2[909],_mm256_xor_si256(c2[11924],_mm256_xor_si256(c2[11480],_mm256_xor_si256(c2[1804],_mm256_xor_si256(c2[2263],_mm256_xor_si256(c2[6662],_mm256_xor_si256(c2[7542],_mm256_xor_si256(c2[7982],_mm256_xor_si256(c2[11089],_mm256_xor_si256(c2[5360],_mm256_xor_si256(c2[10647],_mm256_xor_si256(c2[11087],_mm256_xor_si256(c2[1869],_mm256_xor_si256(c2[9346],_mm256_xor_si256(c2[11542],_mm256_xor_si256(c2[12002],_mm256_xor_si256(c2[10248],_mm256_xor_si256(c2[7163],_mm256_xor_si256(c2[7603],_mm256_xor_si256(c2[11145],_mm256_xor_si256(c2[13347],_mm256_xor_si256(c2[1027],_mm256_xor_si256(c2[1467],_mm256_xor_si256(c2[10721],_mm256_xor_si256(c2[12487],_mm256_xor_si256(c2[1044],_mm256_xor_si256(c2[1484],_mm256_xor_si256(c2[1502],_mm256_xor_si256(c2[1944],_mm256_xor_si256(c2[12063],_mm256_xor_si256(c2[9886],_mm256_xor_si256(c2[13404],_mm256_xor_si256(c2[5480],_mm256_xor_si256(c2[5920],_mm256_xor_si256(c2[12521],_mm256_xor_si256(c2[5068],_mm256_xor_si256(c2[9465],_mm256_xor_si256(c2[1101],_mm256_xor_si256(c2[1541],_mm256_xor_si256(c2[10806],_mm256_xor_si256(c2[241],_mm256_xor_si256(c2[7289],_mm256_xor_si256(c2[7729],_mm256_xor_si256(c2[11265],_mm256_xor_si256(c2[12140],_mm256_xor_si256(c2[10386],_mm256_xor_si256(c2[10826],_mm256_xor_si256(c2[1144],_mm256_xor_si256(c2[284],_mm256_xor_si256(c2[6880],_mm256_xor_si256(c2[3803],_mm256_xor_si256(c2[4243],_mm256_xor_si256(c2[13500],_mm256_xor_si256(c2[13509],_mm256_xor_si256(c2[741],_mm256_xor_si256(c2[1205],_mm256_xor_si256(c2[12643],_mm256_xor_si256(c2[13962],_mm256_xor_si256(c2[323],_mm256_xor_si256(c2[3424],_mm256_xor_si256(c2[5627],_mm256_xor_si256(c2[6942],_mm256_xor_si256(c2[7382],_mm256_xor_si256(c2[2565],_mm256_xor_si256(c2[4769],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[804],_mm256_xor_si256(c2[10925],_mm256_xor_si256(c2[2142],_mm256_xor_si256(c2[10949],_mm256_xor_si256(c2[11828],_mm256_xor_si256(c2[7887],_mm256_xor_si256(c2[3920],_mm256_xor_si256(c2[8321],_mm256_xor_si256(c2[8761],_mm256_xor_si256(c2[9222],_mm256_xor_si256(c2[861],_mm256_xor_si256(c2[10543],c2[10983]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 16
d2[160]=_mm256_xor_si256(c2[9241],_mm256_xor_si256(c2[11888],_mm256_xor_si256(c2[7041],_mm256_xor_si256(c2[3526],_mm256_xor_si256(c2[11909],_mm256_xor_si256(c2[8389],_mm256_xor_si256(c2[12345],_mm256_xor_si256(c2[2222],_mm256_xor_si256(c2[8402],_mm256_xor_si256(c2[7968],_mm256_xor_si256(c2[12361],_mm256_xor_si256(c2[12820],_mm256_xor_si256(c2[3140],_mm256_xor_si256(c2[4460],_mm256_xor_si256(c2[5344],_mm256_xor_si256(c2[7567],_mm256_xor_si256(c2[1848],_mm256_xor_si256(c2[7565],_mm256_xor_si256(c2[12426],_mm256_xor_si256(c2[5824],_mm256_xor_si256(c2[8020],_mm256_xor_si256(c2[8480],_mm256_xor_si256(c2[6726],_mm256_xor_si256(c2[4081],_mm256_xor_si256(c2[7623],_mm256_xor_si256(c2[9825],_mm256_xor_si256(c2[12024],_mm256_xor_si256(c2[7209],_mm256_xor_si256(c2[8965],_mm256_xor_si256(c2[12041],_mm256_xor_si256(c2[12069],_mm256_xor_si256(c2[12501],_mm256_xor_si256(c2[8541],_mm256_xor_si256(c2[6364],_mm256_xor_si256(c2[9882],_mm256_xor_si256(c2[2408],_mm256_xor_si256(c2[1546],_mm256_xor_si256(c2[5943],_mm256_xor_si256(c2[12108],_mm256_xor_si256(c2[5941],_mm256_xor_si256(c2[7284],_mm256_xor_si256(c2[10808],_mm256_xor_si256(c2[4207],_mm256_xor_si256(c2[7743],_mm256_xor_si256(c2[8628],_mm256_xor_si256(c2[7304],_mm256_xor_si256(c2[10841],_mm256_xor_si256(c2[3368],_mm256_xor_si256(c2[721],_mm256_xor_si256(c2[9988],_mm256_xor_si256(c2[9987],_mm256_xor_si256(c2[11308],_mm256_xor_si256(c2[11762],_mm256_xor_si256(c2[9121],_mm256_xor_si256(c2[10880],_mm256_xor_si256(c2[13981],_mm256_xor_si256(c2[2105],_mm256_xor_si256(c2[3860],_mm256_xor_si256(c2[13122],_mm256_xor_si256(c2[1247],_mm256_xor_si256(c2[11361],_mm256_xor_si256(c2[12709],_mm256_xor_si256(c2[7427],_mm256_xor_si256(c2[8306],_mm256_xor_si256(c2[4365],_mm256_xor_si256(c2[408],_mm256_xor_si256(c2[5249],_mm256_xor_si256(c2[8763],_mm256_xor_si256(c2[5700],_mm256_xor_si256(c2[11428],c2[7461]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 17
d2[170]=_mm256_xor_si256(c2[448],_mm256_xor_si256(c2[8644],_mm256_xor_si256(c2[324],_mm256_xor_si256(c2[8701],c2[2187]))));
//row: 18
d2[180]=_mm256_xor_si256(c2[1788],_mm256_xor_si256(c2[2889],_mm256_xor_si256(c2[1589],_mm256_xor_si256(c2[6084],c2[3469]))));
//row: 19
d2[190]=_mm256_xor_si256(c2[2],_mm256_xor_si256(c2[9265],_mm256_xor_si256(c2[2343],_mm256_xor_si256(c2[6328],c2[4161]))));
//row: 20
d2[200]=_mm256_xor_si256(c2[8362],_mm256_xor_si256(c2[11009],_mm256_xor_si256(c2[6162],_mm256_xor_si256(c2[2647],_mm256_xor_si256(c2[5729],_mm256_xor_si256(c2[11020],_mm256_xor_si256(c2[7500],_mm256_xor_si256(c2[11466],_mm256_xor_si256(c2[7523],_mm256_xor_si256(c2[7089],_mm256_xor_si256(c2[11482],_mm256_xor_si256(c2[11941],_mm256_xor_si256(c2[2261],_mm256_xor_si256(c2[3581],_mm256_xor_si256(c2[945],_mm256_xor_si256(c2[6688],_mm256_xor_si256(c2[969],_mm256_xor_si256(c2[6686],_mm256_xor_si256(c2[11547],_mm256_xor_si256(c2[4945],_mm256_xor_si256(c2[7141],_mm256_xor_si256(c2[7601],_mm256_xor_si256(c2[5847],_mm256_xor_si256(c2[3202],_mm256_xor_si256(c2[6744],_mm256_xor_si256(c2[8946],_mm256_xor_si256(c2[11145],_mm256_xor_si256(c2[6320],_mm256_xor_si256(c2[8086],_mm256_xor_si256(c2[11162],_mm256_xor_si256(c2[11180],_mm256_xor_si256(c2[11622],_mm256_xor_si256(c2[7662],_mm256_xor_si256(c2[3701],_mm256_xor_si256(c2[5485],_mm256_xor_si256(c2[9003],_mm256_xor_si256(c2[1529],_mm256_xor_si256(c2[667],_mm256_xor_si256(c2[5064],_mm256_xor_si256(c2[11229],_mm256_xor_si256(c2[1104],_mm256_xor_si256(c2[6405],_mm256_xor_si256(c2[9929],_mm256_xor_si256(c2[3328],_mm256_xor_si256(c2[6864],_mm256_xor_si256(c2[7749],_mm256_xor_si256(c2[6425],_mm256_xor_si256(c2[9962],_mm256_xor_si256(c2[2489],_mm256_xor_si256(c2[13921],_mm256_xor_si256(c2[9109],_mm256_xor_si256(c2[9108],_mm256_xor_si256(c2[10429],_mm256_xor_si256(c2[10883],_mm256_xor_si256(c2[8242],_mm256_xor_si256(c2[10001],_mm256_xor_si256(c2[13102],_mm256_xor_si256(c2[1226],_mm256_xor_si256(c2[2981],_mm256_xor_si256(c2[12243],_mm256_xor_si256(c2[368],_mm256_xor_si256(c2[10482],_mm256_xor_si256(c2[11820],_mm256_xor_si256(c2[6548],_mm256_xor_si256(c2[7427],_mm256_xor_si256(c2[3486],_mm256_xor_si256(c2[13608],_mm256_xor_si256(c2[4360],_mm256_xor_si256(c2[4821],_mm256_xor_si256(c2[10549],c2[6582]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 21
d2[210]=_mm256_xor_si256(c2[6622],_mm256_xor_si256(c2[6705],_mm256_xor_si256(c2[2084],_mm256_xor_si256(c2[12288],c2[3503]))));
//row: 22
d2[220]=_mm256_xor_si256(c2[7485],_mm256_xor_si256(c2[9040],_mm256_xor_si256(c2[10381],c2[12669])));
//row: 23
d2[230]=_mm256_xor_si256(c2[11027],_mm256_xor_si256(c2[7961],_mm256_xor_si256(c2[2404],c2[4323])));
//row: 24
d2[240]=_mm256_xor_si256(c2[881],_mm256_xor_si256(c2[3528],_mm256_xor_si256(c2[12760],_mm256_xor_si256(c2[9245],_mm256_xor_si256(c2[449],_mm256_xor_si256(c2[3549],_mm256_xor_si256(c2[29],_mm256_xor_si256(c2[3985],_mm256_xor_si256(c2[42],_mm256_xor_si256(c2[13687],_mm256_xor_si256(c2[4001],_mm256_xor_si256(c2[4460],_mm256_xor_si256(c2[8869],_mm256_xor_si256(c2[10189],_mm256_xor_si256(c2[10628],_mm256_xor_si256(c2[13286],_mm256_xor_si256(c2[7567],_mm256_xor_si256(c2[13284],_mm256_xor_si256(c2[6243],_mm256_xor_si256(c2[4066],_mm256_xor_si256(c2[11543],_mm256_xor_si256(c2[13749],_mm256_xor_si256(c2[120],_mm256_xor_si256(c2[12445],_mm256_xor_si256(c2[9800],_mm256_xor_si256(c2[13342],_mm256_xor_si256(c2[1465],_mm256_xor_si256(c2[3664],_mm256_xor_si256(c2[12928],_mm256_xor_si256(c2[605],_mm256_xor_si256(c2[3681],_mm256_xor_si256(c2[3709],_mm256_xor_si256(c2[4141],_mm256_xor_si256(c2[181],_mm256_xor_si256(c2[12083],_mm256_xor_si256(c2[1522],_mm256_xor_si256(c2[8127],_mm256_xor_si256(c2[7265],_mm256_xor_si256(c2[11662],_mm256_xor_si256(c2[3748],_mm256_xor_si256(c2[12105],_mm256_xor_si256(c2[13003],_mm256_xor_si256(c2[2448],_mm256_xor_si256(c2[9926],_mm256_xor_si256(c2[13462],_mm256_xor_si256(c2[268],_mm256_xor_si256(c2[13023],_mm256_xor_si256(c2[2481],_mm256_xor_si256(c2[9087],_mm256_xor_si256(c2[6440],_mm256_xor_si256(c2[1628],_mm256_xor_si256(c2[1627],_mm256_xor_si256(c2[2948],_mm256_xor_si256(c2[3402],_mm256_xor_si256(c2[761],_mm256_xor_si256(c2[2520],_mm256_xor_si256(c2[5621],_mm256_xor_si256(c2[7824],_mm256_xor_si256(c2[9589],_mm256_xor_si256(c2[4762],_mm256_xor_si256(c2[6966],_mm256_xor_si256(c2[3001],_mm256_xor_si256(c2[4349],_mm256_xor_si256(c2[13146],_mm256_xor_si256(c2[14025],_mm256_xor_si256(c2[10084],_mm256_xor_si256(c2[6127],_mm256_xor_si256(c2[10968],_mm256_xor_si256(c2[11429],_mm256_xor_si256(c2[3068],c2[13180]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 25
d2[250]=_mm256_xor_si256(c2[5305],_mm256_xor_si256(c2[3209],_mm256_xor_si256(c2[143],c2[6441])));
//row: 26
d2[260]=_mm256_xor_si256(c2[6168],_mm256_xor_si256(c2[6203],_mm256_xor_si256(c2[13289],c2[1622])));
//row: 27
d2[270]=_mm256_xor_si256(c2[7946],_mm256_xor_si256(c2[12880],c2[7209]));
//row: 28
d2[280]=_mm256_xor_si256(c2[4840],_mm256_xor_si256(c2[2289],_mm256_xor_si256(c2[8301],c2[4827])));
//row: 29
d2[290]=_mm256_xor_si256(c2[3083],_mm256_xor_si256(c2[5720],_mm256_xor_si256(c2[883],_mm256_xor_si256(c2[11007],_mm256_xor_si256(c2[11447],_mm256_xor_si256(c2[5741],_mm256_xor_si256(c2[2221],_mm256_xor_si256(c2[5747],_mm256_xor_si256(c2[6187],_mm256_xor_si256(c2[11900],_mm256_xor_si256(c2[2244],_mm256_xor_si256(c2[1800],_mm256_xor_si256(c2[6203],_mm256_xor_si256(c2[6662],_mm256_xor_si256(c2[11061],_mm256_xor_si256(c2[11941],_mm256_xor_si256(c2[12381],_mm256_xor_si256(c2[1409],_mm256_xor_si256(c2[9769],_mm256_xor_si256(c2[967],_mm256_xor_si256(c2[1407],_mm256_xor_si256(c2[6268],_mm256_xor_si256(c2[13745],_mm256_xor_si256(c2[1862],_mm256_xor_si256(c2[2322],_mm256_xor_si256(c2[568],_mm256_xor_si256(c2[11562],_mm256_xor_si256(c2[12002],_mm256_xor_si256(c2[1465],_mm256_xor_si256(c2[3667],_mm256_xor_si256(c2[5426],_mm256_xor_si256(c2[5866],_mm256_xor_si256(c2[1041],_mm256_xor_si256(c2[2807],_mm256_xor_si256(c2[5443],_mm256_xor_si256(c2[5883],_mm256_xor_si256(c2[5901],_mm256_xor_si256(c2[6343],_mm256_xor_si256(c2[2383],_mm256_xor_si256(c2[206],_mm256_xor_si256(c2[3724],_mm256_xor_si256(c2[9889],_mm256_xor_si256(c2[10329],_mm256_xor_si256(c2[9467],_mm256_xor_si256(c2[13864],_mm256_xor_si256(c2[5500],_mm256_xor_si256(c2[5940],_mm256_xor_si256(c2[1126],_mm256_xor_si256(c2[4640],_mm256_xor_si256(c2[11688],_mm256_xor_si256(c2[12128],_mm256_xor_si256(c2[1585],_mm256_xor_si256(c2[2460],_mm256_xor_si256(c2[706],_mm256_xor_si256(c2[1146],_mm256_xor_si256(c2[4683],_mm256_xor_si256(c2[11289],_mm256_xor_si256(c2[8202],_mm256_xor_si256(c2[8642],_mm256_xor_si256(c2[9089],_mm256_xor_si256(c2[3820],_mm256_xor_si256(c2[3829],_mm256_xor_si256(c2[5140],_mm256_xor_si256(c2[5604],_mm256_xor_si256(c2[2963],_mm256_xor_si256(c2[4282],_mm256_xor_si256(c2[4722],_mm256_xor_si256(c2[7823],_mm256_xor_si256(c2[10026],_mm256_xor_si256(c2[11341],_mm256_xor_si256(c2[11781],_mm256_xor_si256(c2[6964],_mm256_xor_si256(c2[9168],_mm256_xor_si256(c2[4763],_mm256_xor_si256(c2[5203],_mm256_xor_si256(c2[9603],_mm256_xor_si256(c2[6541],_mm256_xor_si256(c2[1269],_mm256_xor_si256(c2[2148],_mm256_xor_si256(c2[12286],_mm256_xor_si256(c2[8329],_mm256_xor_si256(c2[12720],_mm256_xor_si256(c2[13160],_mm256_xor_si256(c2[13621],_mm256_xor_si256(c2[5260],_mm256_xor_si256(c2[863],c2[1303]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 30
d2[300]=_mm256_xor_si256(c2[7486],_mm256_xor_si256(c2[10123],_mm256_xor_si256(c2[4846],_mm256_xor_si256(c2[5286],_mm256_xor_si256(c2[1321],_mm256_xor_si256(c2[1761],_mm256_xor_si256(c2[11882],_mm256_xor_si256(c2[10144],_mm256_xor_si256(c2[6184],_mm256_xor_si256(c2[6624],_mm256_xor_si256(c2[10140],_mm256_xor_si256(c2[10580],_mm256_xor_si256(c2[6647],_mm256_xor_si256(c2[6203],_mm256_xor_si256(c2[10166],_mm256_xor_si256(c2[10606],_mm256_xor_si256(c2[11065],_mm256_xor_si256(c2[1385],_mm256_xor_si256(c2[2265],_mm256_xor_si256(c2[2705],_mm256_xor_si256(c2[5802],_mm256_xor_si256(c2[13722],_mm256_xor_si256(c2[83],_mm256_xor_si256(c2[5360],_mm256_xor_si256(c2[5800],_mm256_xor_si256(c2[10661],_mm256_xor_si256(c2[4069],_mm256_xor_si256(c2[5825],_mm256_xor_si256(c2[6265],_mm256_xor_si256(c2[6725],_mm256_xor_si256(c2[4521],_mm256_xor_si256(c2[4961],_mm256_xor_si256(c2[1886],_mm256_xor_si256(c2[2326],_mm256_xor_si256(c2[5868],_mm256_xor_si256(c2[7620],_mm256_xor_si256(c2[8060],_mm256_xor_si256(c2[9829],_mm256_xor_si256(c2[10269],_mm256_xor_si256(c2[5444],_mm256_xor_si256(c2[6760],_mm256_xor_si256(c2[7200],_mm256_xor_si256(c2[9846],_mm256_xor_si256(c2[10286],_mm256_xor_si256(c2[10304],_mm256_xor_si256(c2[10746],_mm256_xor_si256(c2[6346],_mm256_xor_si256(c2[6786],_mm256_xor_si256(c2[4609],_mm256_xor_si256(c2[7687],_mm256_xor_si256(c2[8127],_mm256_xor_si256(c2[203],_mm256_xor_si256(c2[643],_mm256_xor_si256(c2[10320],_mm256_xor_si256(c2[13860],_mm256_xor_si256(c2[4188],_mm256_xor_si256(c2[9903],_mm256_xor_si256(c2[10343],_mm256_xor_si256(c2[5529],_mm256_xor_si256(c2[9043],_mm256_xor_si256(c2[2002],_mm256_xor_si256(c2[2442],_mm256_xor_si256(c2[5988],_mm256_xor_si256(c2[6423],_mm256_xor_si256(c2[6863],_mm256_xor_si256(c2[5109],_mm256_xor_si256(c2[5549],_mm256_xor_si256(c2[4223],_mm256_xor_si256(c2[9086],_mm256_xor_si256(c2[1163],_mm256_xor_si256(c2[1603],_mm256_xor_si256(c2[12605],_mm256_xor_si256(c2[13045],_mm256_xor_si256(c2[8223],_mm256_xor_si256(c2[8222],_mm256_xor_si256(c2[9103],_mm256_xor_si256(c2[9543],_mm256_xor_si256(c2[10007],_mm256_xor_si256(c2[7366],_mm256_xor_si256(c2[8685],_mm256_xor_si256(c2[9125],_mm256_xor_si256(c2[12226],_mm256_xor_si256(c2[13989],_mm256_xor_si256(c2[340],_mm256_xor_si256(c2[1665],_mm256_xor_si256(c2[2105],_mm256_xor_si256(c2[11367],_mm256_xor_si256(c2[13121],_mm256_xor_si256(c2[13561],_mm256_xor_si256(c2[9166],_mm256_xor_si256(c2[9606],_mm256_xor_si256(c2[10944],_mm256_xor_si256(c2[5662],_mm256_xor_si256(c2[6101],_mm256_xor_si256(c2[6541],_mm256_xor_si256(c2[2600],_mm256_xor_si256(c2[12282],_mm256_xor_si256(c2[12722],_mm256_xor_si256(c2[3044],_mm256_xor_si256(c2[3484],_mm256_xor_si256(c2[3945],_mm256_xor_si256(c2[9663],_mm256_xor_si256(c2[5266],c2[5706])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 31
d2[310]=_mm256_xor_si256(c2[4844],_mm256_xor_si256(c2[5287],_mm256_xor_si256(c2[7481],_mm256_xor_si256(c2[7924],_mm256_xor_si256(c2[2644],_mm256_xor_si256(c2[3087],_mm256_xor_si256(c2[13208],_mm256_xor_si256(c2[13201],_mm256_xor_si256(c2[13641],_mm256_xor_si256(c2[7502],_mm256_xor_si256(c2[7945],_mm256_xor_si256(c2[3982],_mm256_xor_si256(c2[4425],_mm256_xor_si256(c2[7948],_mm256_xor_si256(c2[7941],_mm256_xor_si256(c2[8381],_mm256_xor_si256(c2[13226],_mm256_xor_si256(c2[4005],_mm256_xor_si256(c2[4448],_mm256_xor_si256(c2[3561],_mm256_xor_si256(c2[4004],_mm256_xor_si256(c2[7964],_mm256_xor_si256(c2[8407],_mm256_xor_si256(c2[8423],_mm256_xor_si256(c2[8866],_mm256_xor_si256(c2[12822],_mm256_xor_si256(c2[13265],_mm256_xor_si256(c2[63],_mm256_xor_si256(c2[66],_mm256_xor_si256(c2[506],_mm256_xor_si256(c2[3160],_mm256_xor_si256(c2[3603],_mm256_xor_si256(c2[11520],_mm256_xor_si256(c2[11963],_mm256_xor_si256(c2[3168],_mm256_xor_si256(c2[3161],_mm256_xor_si256(c2[3601],_mm256_xor_si256(c2[8029],_mm256_xor_si256(c2[8462],_mm256_xor_si256(c2[1427],_mm256_xor_si256(c2[1860],_mm256_xor_si256(c2[3623],_mm256_xor_si256(c2[4066],_mm256_xor_si256(c2[4083],_mm256_xor_si256(c2[4526],_mm256_xor_si256(c2[2329],_mm256_xor_si256(c2[2762],_mm256_xor_si256(c2[13763],_mm256_xor_si256(c2[13766],_mm256_xor_si256(c2[127],_mm256_xor_si256(c2[3226],_mm256_xor_si256(c2[3669],_mm256_xor_si256(c2[5428],_mm256_xor_si256(c2[5861],_mm256_xor_si256(c2[7627],_mm256_xor_si256(c2[7620],_mm256_xor_si256(c2[8060],_mm256_xor_si256(c2[8949],_mm256_xor_si256(c2[2802],_mm256_xor_si256(c2[3245],_mm256_xor_si256(c2[4568],_mm256_xor_si256(c2[5001],_mm256_xor_si256(c2[7644],_mm256_xor_si256(c2[7647],_mm256_xor_si256(c2[8087],_mm256_xor_si256(c2[7662],_mm256_xor_si256(c2[8105],_mm256_xor_si256(c2[8104],_mm256_xor_si256(c2[8547],_mm256_xor_si256(c2[4144],_mm256_xor_si256(c2[4587],_mm256_xor_si256(c2[1967],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[5485],_mm256_xor_si256(c2[5928],_mm256_xor_si256(c2[12080],_mm256_xor_si256(c2[12083],_mm256_xor_si256(c2[12523],_mm256_xor_si256(c2[11228],_mm256_xor_si256(c2[11661],_mm256_xor_si256(c2[1546],_mm256_xor_si256(c2[1989],_mm256_xor_si256(c2[7701],_mm256_xor_si256(c2[7704],_mm256_xor_si256(c2[8144],_mm256_xor_si256(c2[2887],_mm256_xor_si256(c2[3320],_mm256_xor_si256(c2[6401],_mm256_xor_si256(c2[6844],_mm256_xor_si256(c2[13889],_mm256_xor_si256(c2[13882],_mm256_xor_si256(c2[243],_mm256_xor_si256(c2[3346],_mm256_xor_si256(c2[3789],_mm256_xor_si256(c2[4221],_mm256_xor_si256(c2[4664],_mm256_xor_si256(c2[2907],_mm256_xor_si256(c2[2900],_mm256_xor_si256(c2[3340],_mm256_xor_si256(c2[6444],_mm256_xor_si256(c2[6887],_mm256_xor_si256(c2[13040],_mm256_xor_si256(c2[13483],_mm256_xor_si256(c2[10403],_mm256_xor_si256(c2[10406],_mm256_xor_si256(c2[10846],_mm256_xor_si256(c2[5581],_mm256_xor_si256(c2[6024],_mm256_xor_si256(c2[5580],_mm256_xor_si256(c2[6023],_mm256_xor_si256(c2[6901],_mm256_xor_si256(c2[7344],_mm256_xor_si256(c2[7365],_mm256_xor_si256(c2[7808],_mm256_xor_si256(c2[4724],_mm256_xor_si256(c2[5167],_mm256_xor_si256(c2[6483],_mm256_xor_si256(c2[6486],_mm256_xor_si256(c2[6926],_mm256_xor_si256(c2[9584],_mm256_xor_si256(c2[10027],_mm256_xor_si256(c2[11787],_mm256_xor_si256(c2[12220],_mm256_xor_si256(c2[13542],_mm256_xor_si256(c2[13545],_mm256_xor_si256(c2[13985],_mm256_xor_si256(c2[8725],_mm256_xor_si256(c2[9168],_mm256_xor_si256(c2[10929],_mm256_xor_si256(c2[11362],_mm256_xor_si256(c2[6964],_mm256_xor_si256(c2[6967],_mm256_xor_si256(c2[7407],_mm256_xor_si256(c2[8302],_mm256_xor_si256(c2[8745],_mm256_xor_si256(c2[3020],_mm256_xor_si256(c2[3463],_mm256_xor_si256(c2[3909],_mm256_xor_si256(c2[4342],_mm256_xor_si256(c2[14047],_mm256_xor_si256(c2[401],_mm256_xor_si256(c2[10080],_mm256_xor_si256(c2[10523],_mm256_xor_si256(c2[842],_mm256_xor_si256(c2[845],_mm256_xor_si256(c2[1285],_mm256_xor_si256(c2[1303],_mm256_xor_si256(c2[1746],_mm256_xor_si256(c2[7021],_mm256_xor_si256(c2[7464],_mm256_xor_si256(c2[3064],_mm256_xor_si256(c2[3067],c2[3507]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 32
d2[320]=_mm256_xor_si256(c2[1329],_mm256_xor_si256(c2[3966],_mm256_xor_si256(c2[12768],_mm256_xor_si256(c2[13208],_mm256_xor_si256(c2[9243],_mm256_xor_si256(c2[9683],_mm256_xor_si256(c2[7926],_mm256_xor_si256(c2[3987],_mm256_xor_si256(c2[27],_mm256_xor_si256(c2[467],_mm256_xor_si256(c2[3983],_mm256_xor_si256(c2[4423],_mm256_xor_si256(c2[480],_mm256_xor_si256(c2[46],_mm256_xor_si256(c2[4009],_mm256_xor_si256(c2[4449],_mm256_xor_si256(c2[4908],_mm256_xor_si256(c2[9307],_mm256_xor_si256(c2[10187],_mm256_xor_si256(c2[10627],_mm256_xor_si256(c2[13724],_mm256_xor_si256(c2[7565],_mm256_xor_si256(c2[8005],_mm256_xor_si256(c2[13282],_mm256_xor_si256(c2[13722],_mm256_xor_si256(c2[4504],_mm256_xor_si256(c2[11981],_mm256_xor_si256(c2[13747],_mm256_xor_si256(c2[108],_mm256_xor_si256(c2[568],_mm256_xor_si256(c2[12443],_mm256_xor_si256(c2[12883],_mm256_xor_si256(c2[9808],_mm256_xor_si256(c2[10248],_mm256_xor_si256(c2[13780],_mm256_xor_si256(c2[1463],_mm256_xor_si256(c2[1903],_mm256_xor_si256(c2[3662],_mm256_xor_si256(c2[4102],_mm256_xor_si256(c2[13366],_mm256_xor_si256(c2[603],_mm256_xor_si256(c2[1043],_mm256_xor_si256(c2[3689],_mm256_xor_si256(c2[4129],_mm256_xor_si256(c2[4147],_mm256_xor_si256(c2[4589],_mm256_xor_si256(c2[189],_mm256_xor_si256(c2[629],_mm256_xor_si256(c2[12521],_mm256_xor_si256(c2[1520],_mm256_xor_si256(c2[1960],_mm256_xor_si256(c2[8125],_mm256_xor_si256(c2[8565],_mm256_xor_si256(c2[7703],_mm256_xor_si256(c2[12100],_mm256_xor_si256(c2[3746],_mm256_xor_si256(c2[4186],_mm256_xor_si256(c2[13441],_mm256_xor_si256(c2[2886],_mm256_xor_si256(c2[9924],_mm256_xor_si256(c2[10364],_mm256_xor_si256(c2[9920],_mm256_xor_si256(c2[13900],_mm256_xor_si256(c2[266],_mm256_xor_si256(c2[706],_mm256_xor_si256(c2[13021],_mm256_xor_si256(c2[13461],_mm256_xor_si256(c2[2929],_mm256_xor_si256(c2[9085],_mm256_xor_si256(c2[9525],_mm256_xor_si256(c2[6448],_mm256_xor_si256(c2[6888],_mm256_xor_si256(c2[6888],_mm256_xor_si256(c2[2066],_mm256_xor_si256(c2[2065],_mm256_xor_si256(c2[2946],_mm256_xor_si256(c2[3386],_mm256_xor_si256(c2[3840],_mm256_xor_si256(c2[1209],_mm256_xor_si256(c2[2528],_mm256_xor_si256(c2[2968],_mm256_xor_si256(c2[6069],_mm256_xor_si256(c2[7822],_mm256_xor_si256(c2[8262],_mm256_xor_si256(c2[9587],_mm256_xor_si256(c2[10027],_mm256_xor_si256(c2[5200],_mm256_xor_si256(c2[6964],_mm256_xor_si256(c2[7404],_mm256_xor_si256(c2[3009],_mm256_xor_si256(c2[3449],_mm256_xor_si256(c2[4787],_mm256_xor_si256(c2[13584],_mm256_xor_si256(c2[14023],_mm256_xor_si256(c2[384],_mm256_xor_si256(c2[10522],_mm256_xor_si256(c2[6125],_mm256_xor_si256(c2[6565],_mm256_xor_si256(c2[10966],_mm256_xor_si256(c2[11406],_mm256_xor_si256(c2[11867],_mm256_xor_si256(c2[3506],_mm256_xor_si256(c2[13188],c2[13628])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 33
d2[330]=_mm256_xor_si256(c2[4425],_mm256_xor_si256(c2[8840],_mm256_xor_si256(c2[5504],c2[861])));
//row: 34
d2[340]=_mm256_xor_si256(c2[11885],_mm256_xor_si256(c2[3669],_mm256_xor_si256(c2[2500],c2[5621])));
//row: 35
d2[350]=_mm256_xor_si256(c2[2641],_mm256_xor_si256(c2[5288],_mm256_xor_si256(c2[441],_mm256_xor_si256(c2[11005],_mm256_xor_si256(c2[5309],_mm256_xor_si256(c2[1789],_mm256_xor_si256(c2[5745],_mm256_xor_si256(c2[6626],_mm256_xor_si256(c2[1802],_mm256_xor_si256(c2[1368],_mm256_xor_si256(c2[5761],_mm256_xor_si256(c2[6220],_mm256_xor_si256(c2[10629],_mm256_xor_si256(c2[11949],_mm256_xor_si256(c2[967],_mm256_xor_si256(c2[9327],_mm256_xor_si256(c2[965],_mm256_xor_si256(c2[5826],_mm256_xor_si256(c2[13303],_mm256_xor_si256(c2[1420],_mm256_xor_si256(c2[1880],_mm256_xor_si256(c2[126],_mm256_xor_si256(c2[11560],_mm256_xor_si256(c2[13324],_mm256_xor_si256(c2[1023],_mm256_xor_si256(c2[3225],_mm256_xor_si256(c2[5424],_mm256_xor_si256(c2[609],_mm256_xor_si256(c2[2365],_mm256_xor_si256(c2[5441],_mm256_xor_si256(c2[5469],_mm256_xor_si256(c2[5901],_mm256_xor_si256(c2[1941],_mm256_xor_si256(c2[13843],_mm256_xor_si256(c2[3282],_mm256_xor_si256(c2[9887],_mm256_xor_si256(c2[9025],_mm256_xor_si256(c2[13422],_mm256_xor_si256(c2[5508],_mm256_xor_si256(c2[684],_mm256_xor_si256(c2[4208],_mm256_xor_si256(c2[11686],_mm256_xor_si256(c2[10361],_mm256_xor_si256(c2[1143],_mm256_xor_si256(c2[2028],_mm256_xor_si256(c2[704],_mm256_xor_si256(c2[4241],_mm256_xor_si256(c2[10847],_mm256_xor_si256(c2[8200],_mm256_xor_si256(c2[3388],_mm256_xor_si256(c2[3387],_mm256_xor_si256(c2[4708],_mm256_xor_si256(c2[5162],_mm256_xor_si256(c2[2521],_mm256_xor_si256(c2[4280],_mm256_xor_si256(c2[7381],_mm256_xor_si256(c2[9584],_mm256_xor_si256(c2[11349],_mm256_xor_si256(c2[6522],_mm256_xor_si256(c2[8726],_mm256_xor_si256(c2[4761],_mm256_xor_si256(c2[6109],_mm256_xor_si256(c2[827],_mm256_xor_si256(c2[1706],_mm256_xor_si256(c2[11844],_mm256_xor_si256(c2[7887],_mm256_xor_si256(c2[12728],_mm256_xor_si256(c2[13189],_mm256_xor_si256(c2[4828],c2[861])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 36
d2[360]=_mm256_xor_si256(c2[1328],_mm256_xor_si256(c2[8645],_mm256_xor_si256(c2[8225],c2[365])));
//row: 37
d2[370]=_mm256_xor_si256(c2[12325],_mm256_xor_si256(c2[12765],_mm256_xor_si256(c2[1323],_mm256_xor_si256(c2[10565],_mm256_xor_si256(c2[7040],_mm256_xor_si256(c2[904],_mm256_xor_si256(c2[1344],_mm256_xor_si256(c2[11903],_mm256_xor_si256(c2[1780],_mm256_xor_si256(c2[4429],_mm256_xor_si256(c2[11486],_mm256_xor_si256(c2[11926],_mm256_xor_si256(c2[11482],_mm256_xor_si256(c2[1806],_mm256_xor_si256(c2[1825],_mm256_xor_si256(c2[2265],_mm256_xor_si256(c2[6664],_mm256_xor_si256(c2[7984],_mm256_xor_si256(c2[11081],_mm256_xor_si256(c2[5362],_mm256_xor_si256(c2[11089],_mm256_xor_si256(c2[1421],_mm256_xor_si256(c2[1861],_mm256_xor_si256(c2[9348],_mm256_xor_si256(c2[11544],_mm256_xor_si256(c2[11564],_mm256_xor_si256(c2[12004],_mm256_xor_si256(c2[10240],_mm256_xor_si256(c2[7605],_mm256_xor_si256(c2[11147],_mm256_xor_si256(c2[13349],_mm256_xor_si256(c2[1469],_mm256_xor_si256(c2[10723],_mm256_xor_si256(c2[12489],_mm256_xor_si256(c2[1486],_mm256_xor_si256(c2[1064],_mm256_xor_si256(c2[1504],_mm256_xor_si256(c2[1946],_mm256_xor_si256(c2[12065],_mm256_xor_si256(c2[9448],_mm256_xor_si256(c2[9888],_mm256_xor_si256(c2[13406],_mm256_xor_si256(c2[5922],_mm256_xor_si256(c2[4620],_mm256_xor_si256(c2[5060],_mm256_xor_si256(c2[9467],_mm256_xor_si256(c2[1543],_mm256_xor_si256(c2[10368],_mm256_xor_si256(c2[10808],_mm256_xor_si256(c2[243],_mm256_xor_si256(c2[7721],_mm256_xor_si256(c2[10827],_mm256_xor_si256(c2[11267],_mm256_xor_si256(c2[12142],_mm256_xor_si256(c2[10828],_mm256_xor_si256(c2[6860],_mm256_xor_si256(c2[286],_mm256_xor_si256(c2[6882],_mm256_xor_si256(c2[4245],_mm256_xor_si256(c2[13062],_mm256_xor_si256(c2[13502],_mm256_xor_si256(c2[13501],_mm256_xor_si256(c2[743],_mm256_xor_si256(c2[767],_mm256_xor_si256(c2[1207],_mm256_xor_si256(c2[12645],_mm256_xor_si256(c2[325],_mm256_xor_si256(c2[3426],_mm256_xor_si256(c2[5629],_mm256_xor_si256(c2[7384],_mm256_xor_si256(c2[2127],_mm256_xor_si256(c2[2567],_mm256_xor_si256(c2[4761],_mm256_xor_si256(c2[806],_mm256_xor_si256(c2[1704],_mm256_xor_si256(c2[2144],_mm256_xor_si256(c2[10941],_mm256_xor_si256(c2[11820],_mm256_xor_si256(c2[7449],_mm256_xor_si256(c2[7889],_mm256_xor_si256(c2[3922],_mm256_xor_si256(c2[8763],_mm256_xor_si256(c2[8784],_mm256_xor_si256(c2[9224],_mm256_xor_si256(c2[863],c2[10985])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 38
d2[380]=_mm256_xor_si256(c2[10124],_mm256_xor_si256(c2[8545],_mm256_xor_si256(c2[202],c2[9485])));
//row: 39
d2[390]=_mm256_xor_si256(c2[2663],_mm256_xor_si256(c2[5782],_mm256_xor_si256(c2[146],c2[7426])));
//row: 40
d2[400]=_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[7202],c2[2546]));
//row: 41
d2[410]=_mm256_xor_si256(c2[11464],_mm256_xor_si256(c2[6661],_mm256_xor_si256(c2[12503],c2[6966])));
//row: 42
d2[420]=_mm256_xor_si256(c2[3526],_mm256_xor_si256(c2[6163],_mm256_xor_si256(c2[886],_mm256_xor_si256(c2[1326],_mm256_xor_si256(c2[11440],_mm256_xor_si256(c2[11880],_mm256_xor_si256(c2[887],_mm256_xor_si256(c2[6184],_mm256_xor_si256(c2[2224],_mm256_xor_si256(c2[2664],_mm256_xor_si256(c2[6180],_mm256_xor_si256(c2[6620],_mm256_xor_si256(c2[2687],_mm256_xor_si256(c2[2243],_mm256_xor_si256(c2[6206],_mm256_xor_si256(c2[6646],_mm256_xor_si256(c2[7105],_mm256_xor_si256(c2[11504],_mm256_xor_si256(c2[12384],_mm256_xor_si256(c2[12824],_mm256_xor_si256(c2[1842],_mm256_xor_si256(c2[9762],_mm256_xor_si256(c2[10202],_mm256_xor_si256(c2[1400],_mm256_xor_si256(c2[1840],_mm256_xor_si256(c2[522],_mm256_xor_si256(c2[6701],_mm256_xor_si256(c2[109],_mm256_xor_si256(c2[1865],_mm256_xor_si256(c2[2305],_mm256_xor_si256(c2[2765],_mm256_xor_si256(c2[561],_mm256_xor_si256(c2[1001],_mm256_xor_si256(c2[12005],_mm256_xor_si256(c2[12445],_mm256_xor_si256(c2[1908],_mm256_xor_si256(c2[3660],_mm256_xor_si256(c2[4100],_mm256_xor_si256(c2[5869],_mm256_xor_si256(c2[6309],_mm256_xor_si256(c2[1484],_mm256_xor_si256(c2[2800],_mm256_xor_si256(c2[3240],_mm256_xor_si256(c2[5886],_mm256_xor_si256(c2[6326],_mm256_xor_si256(c2[6344],_mm256_xor_si256(c2[6786],_mm256_xor_si256(c2[2386],_mm256_xor_si256(c2[2826],_mm256_xor_si256(c2[649],_mm256_xor_si256(c2[3727],_mm256_xor_si256(c2[4167],_mm256_xor_si256(c2[10322],_mm256_xor_si256(c2[10762],_mm256_xor_si256(c2[9900],_mm256_xor_si256(c2[228],_mm256_xor_si256(c2[5943],_mm256_xor_si256(c2[6383],_mm256_xor_si256(c2[1569],_mm256_xor_si256(c2[5083],_mm256_xor_si256(c2[12121],_mm256_xor_si256(c2[12561],_mm256_xor_si256(c2[2028],_mm256_xor_si256(c2[2463],_mm256_xor_si256(c2[2903],_mm256_xor_si256(c2[1149],_mm256_xor_si256(c2[1589],_mm256_xor_si256(c2[5126],_mm256_xor_si256(c2[11282],_mm256_xor_si256(c2[11722],_mm256_xor_si256(c2[8645],_mm256_xor_si256(c2[9085],_mm256_xor_si256(c2[4263],_mm256_xor_si256(c2[4262],_mm256_xor_si256(c2[5143],_mm256_xor_si256(c2[5583],_mm256_xor_si256(c2[6047],_mm256_xor_si256(c2[3406],_mm256_xor_si256(c2[4725],_mm256_xor_si256(c2[5165],_mm256_xor_si256(c2[8266],_mm256_xor_si256(c2[10029],_mm256_xor_si256(c2[10469],_mm256_xor_si256(c2[11784],_mm256_xor_si256(c2[12224],_mm256_xor_si256(c2[7407],_mm256_xor_si256(c2[9161],_mm256_xor_si256(c2[9601],_mm256_xor_si256(c2[5206],_mm256_xor_si256(c2[5646],_mm256_xor_si256(c2[6984],_mm256_xor_si256(c2[1702],_mm256_xor_si256(c2[2141],_mm256_xor_si256(c2[2581],_mm256_xor_si256(c2[12729],_mm256_xor_si256(c2[8322],_mm256_xor_si256(c2[8762],_mm256_xor_si256(c2[13163],_mm256_xor_si256(c2[13603],_mm256_xor_si256(c2[14064],_mm256_xor_si256(c2[5703],_mm256_xor_si256(c2[1306],c2[1746]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 43
d2[430]=_mm256_xor_si256(c2[7045],_mm256_xor_si256(c2[9682],_mm256_xor_si256(c2[4845],_mm256_xor_si256(c2[880],_mm256_xor_si256(c2[1320],_mm256_xor_si256(c2[9703],_mm256_xor_si256(c2[6183],_mm256_xor_si256(c2[9709],_mm256_xor_si256(c2[10149],_mm256_xor_si256(c2[1787],_mm256_xor_si256(c2[6206],_mm256_xor_si256(c2[5762],_mm256_xor_si256(c2[10165],_mm256_xor_si256(c2[10624],_mm256_xor_si256(c2[944],_mm256_xor_si256(c2[1824],_mm256_xor_si256(c2[2264],_mm256_xor_si256(c2[5361],_mm256_xor_si256(c2[13721],_mm256_xor_si256(c2[4929],_mm256_xor_si256(c2[5369],_mm256_xor_si256(c2[10220],_mm256_xor_si256(c2[3628],_mm256_xor_si256(c2[5824],_mm256_xor_si256(c2[6284],_mm256_xor_si256(c2[4520],_mm256_xor_si256(c2[1445],_mm256_xor_si256(c2[1885],_mm256_xor_si256(c2[5427],_mm256_xor_si256(c2[7629],_mm256_xor_si256(c2[9388],_mm256_xor_si256(c2[9828],_mm256_xor_si256(c2[5003],_mm256_xor_si256(c2[6769],_mm256_xor_si256(c2[9405],_mm256_xor_si256(c2[9845],_mm256_xor_si256(c2[9863],_mm256_xor_si256(c2[10305],_mm256_xor_si256(c2[6345],_mm256_xor_si256(c2[4168],_mm256_xor_si256(c2[7686],_mm256_xor_si256(c2[13841],_mm256_xor_si256(c2[202],_mm256_xor_si256(c2[13429],_mm256_xor_si256(c2[3747],_mm256_xor_si256(c2[9462],_mm256_xor_si256(c2[9902],_mm256_xor_si256(c2[5088],_mm256_xor_si256(c2[8602],_mm256_xor_si256(c2[1561],_mm256_xor_si256(c2[2001],_mm256_xor_si256(c2[5547],_mm256_xor_si256(c2[6422],_mm256_xor_si256(c2[4668],_mm256_xor_si256(c2[5108],_mm256_xor_si256(c2[8645],_mm256_xor_si256(c2[1162],_mm256_xor_si256(c2[12164],_mm256_xor_si256(c2[12604],_mm256_xor_si256(c2[7782],_mm256_xor_si256(c2[7781],_mm256_xor_si256(c2[9102],_mm256_xor_si256(c2[9566],_mm256_xor_si256(c2[6925],_mm256_xor_si256(c2[8244],_mm256_xor_si256(c2[8684],_mm256_xor_si256(c2[2522],_mm256_xor_si256(c2[11785],_mm256_xor_si256(c2[13988],_mm256_xor_si256(c2[1224],_mm256_xor_si256(c2[1664],_mm256_xor_si256(c2[10926],_mm256_xor_si256(c2[13120],_mm256_xor_si256(c2[8725],_mm256_xor_si256(c2[9165],_mm256_xor_si256(c2[7405],_mm256_xor_si256(c2[10503],_mm256_xor_si256(c2[5221],_mm256_xor_si256(c2[6100],_mm256_xor_si256(c2[2169],_mm256_xor_si256(c2[12281],_mm256_xor_si256(c2[2603],_mm256_xor_si256(c2[3043],_mm256_xor_si256(c2[3504],_mm256_xor_si256(c2[9222],_mm256_xor_si256(c2[4825],c2[5265]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 44
d2[440]=_mm256_xor_si256(c2[5720],_mm256_xor_si256(c2[8367],_mm256_xor_si256(c2[3520],_mm256_xor_si256(c2[5],_mm256_xor_si256(c2[4407],_mm256_xor_si256(c2[8388],_mm256_xor_si256(c2[4868],_mm256_xor_si256(c2[8824],_mm256_xor_si256(c2[4881],_mm256_xor_si256(c2[4447],_mm256_xor_si256(c2[8840],_mm256_xor_si256(c2[9309],_mm256_xor_si256(c2[13708],_mm256_xor_si256(c2[949],_mm256_xor_si256(c2[4046],_mm256_xor_si256(c2[12406],_mm256_xor_si256(c2[4044],_mm256_xor_si256(c2[8905],_mm256_xor_si256(c2[2303],_mm256_xor_si256(c2[4509],_mm256_xor_si256(c2[4969],_mm256_xor_si256(c2[3205],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[4102],_mm256_xor_si256(c2[6304],_mm256_xor_si256(c2[8503],_mm256_xor_si256(c2[1467],_mm256_xor_si256(c2[3688],_mm256_xor_si256(c2[5444],_mm256_xor_si256(c2[8520],_mm256_xor_si256(c2[8548],_mm256_xor_si256(c2[8980],_mm256_xor_si256(c2[5020],_mm256_xor_si256(c2[1508],_mm256_xor_si256(c2[2843],_mm256_xor_si256(c2[6361],_mm256_xor_si256(c2[12966],_mm256_xor_si256(c2[12104],_mm256_xor_si256(c2[2422],_mm256_xor_si256(c2[8587],_mm256_xor_si256(c2[3763],_mm256_xor_si256(c2[7287],_mm256_xor_si256(c2[686],_mm256_xor_si256(c2[4222],_mm256_xor_si256(c2[5107],_mm256_xor_si256(c2[3783],_mm256_xor_si256(c2[7320],_mm256_xor_si256(c2[13926],_mm256_xor_si256(c2[11289],_mm256_xor_si256(c2[6467],_mm256_xor_si256(c2[6466],_mm256_xor_si256(c2[7787],_mm256_xor_si256(c2[8241],_mm256_xor_si256(c2[5600],_mm256_xor_si256(c2[7369],_mm256_xor_si256(c2[10460],_mm256_xor_si256(c2[12663],_mm256_xor_si256(c2[349],_mm256_xor_si256(c2[9601],_mm256_xor_si256(c2[11805],_mm256_xor_si256(c2[7840],_mm256_xor_si256(c2[9188],_mm256_xor_si256(c2[3906],_mm256_xor_si256(c2[4785],_mm256_xor_si256(c2[844],_mm256_xor_si256(c2[10966],_mm256_xor_si256(c2[1728],_mm256_xor_si256(c2[2189],_mm256_xor_si256(c2[7907],c2[3940])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 45
d2[450]=_mm256_xor_si256(c2[2223],_mm256_xor_si256(c2[1887],c2[13403]));
}
}