adding LDPC encoder and decoder (from mwc18 branch)

This commit is contained in:
Florian Kaltenberger
2018-04-09 13:10:17 -07:00
parent 4b0a1c06c7
commit b61e800764
979 changed files with 21685 additions and 1 deletions
@@ -0,0 +1,139 @@
#include "PHY/sse_intrin.h"
// generated code for Zc=288, byte encoding
static inline void ldpc_BG2_Zc288_byte(uint8_t *c,uint8_t *d) {
__m256i *csimd=(__m256i *)c,*dsimd=(__m256i *)d;
__m256i *c2,*d2;
int i2;
for (i2=0; i2<9; i2++) {
c2=&csimd[i2];
d2=&dsimd[i2];
//row: 0
d2[0]=_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[3240],_mm256_xor_si256(c2[5402],_mm256_xor_si256(c2[4518],_mm256_xor_si256(c2[1641],_mm256_xor_si256(c2[4161],_mm256_xor_si256(c2[3637],_mm256_xor_si256(c2[4359],_mm256_xor_si256(c2[415],_mm256_xor_si256(c2[5276],_mm256_xor_si256(c2[4916],_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[2415],_mm256_xor_si256(c2[3852],_mm256_xor_si256(c2[272],_mm256_xor_si256(c2[630],_mm256_xor_si256(c2[3351],_mm256_xor_si256(c2[3530],_mm256_xor_si256(c2[1550],_mm256_xor_si256(c2[309],_mm256_xor_si256(c2[3007],_mm256_xor_si256(c2[866],_mm256_xor_si256(c2[2667],_mm256_xor_si256(c2[5727],_mm256_xor_si256(c2[5565],_mm256_xor_si256(c2[3223],c2[2684]))))))))))))))))))))))))));
//row: 1
d2[9]=_mm256_xor_si256(c2[540],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[3240],_mm256_xor_si256(c2[5402],_mm256_xor_si256(c2[4698],_mm256_xor_si256(c2[4518],_mm256_xor_si256(c2[1641],_mm256_xor_si256(c2[4161],_mm256_xor_si256(c2[3817],_mm256_xor_si256(c2[3637],_mm256_xor_si256(c2[4359],_mm256_xor_si256(c2[595],_mm256_xor_si256(c2[415],_mm256_xor_si256(c2[5276],_mm256_xor_si256(c2[4916],_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[2415],_mm256_xor_si256(c2[3852],_mm256_xor_si256(c2[272],_mm256_xor_si256(c2[630],_mm256_xor_si256(c2[3531],_mm256_xor_si256(c2[3351],_mm256_xor_si256(c2[3530],_mm256_xor_si256(c2[1550],_mm256_xor_si256(c2[309],_mm256_xor_si256(c2[3007],_mm256_xor_si256(c2[866],_mm256_xor_si256(c2[2667],_mm256_xor_si256(c2[5727],_mm256_xor_si256(c2[5745],_mm256_xor_si256(c2[5565],_mm256_xor_si256(c2[3223],c2[2684]))))))))))))))))))))))))))))))));
//row: 2
d2[18]=_mm256_xor_si256(c2[540],_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[3420],_mm256_xor_si256(c2[3240],_mm256_xor_si256(c2[5402],_mm256_xor_si256(c2[4698],_mm256_xor_si256(c2[4518],_mm256_xor_si256(c2[1641],_mm256_xor_si256(c2[4161],_mm256_xor_si256(c2[3817],_mm256_xor_si256(c2[3637],_mm256_xor_si256(c2[4359],_mm256_xor_si256(c2[595],_mm256_xor_si256(c2[415],_mm256_xor_si256(c2[5456],_mm256_xor_si256(c2[5276],_mm256_xor_si256(c2[4916],_mm256_xor_si256(c2[1515],_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[2415],_mm256_xor_si256(c2[3852],_mm256_xor_si256(c2[452],_mm256_xor_si256(c2[272],_mm256_xor_si256(c2[630],_mm256_xor_si256(c2[3531],_mm256_xor_si256(c2[3351],_mm256_xor_si256(c2[3710],_mm256_xor_si256(c2[3530],_mm256_xor_si256(c2[1550],_mm256_xor_si256(c2[489],_mm256_xor_si256(c2[309],_mm256_xor_si256(c2[3007],_mm256_xor_si256(c2[1046],_mm256_xor_si256(c2[866],_mm256_xor_si256(c2[2667],_mm256_xor_si256(c2[5727],_mm256_xor_si256(c2[5745],_mm256_xor_si256(c2[5565],_mm256_xor_si256(c2[3403],_mm256_xor_si256(c2[3223],c2[2684]))))))))))))))))))))))))))))))))))))))));
//row: 3
d2[27]=_mm256_xor_si256(c2[360],_mm256_xor_si256(c2[3240],_mm256_xor_si256(c2[5402],_mm256_xor_si256(c2[4518],_mm256_xor_si256(c2[1641],_mm256_xor_si256(c2[4341],_mm256_xor_si256(c2[4161],_mm256_xor_si256(c2[3637],_mm256_xor_si256(c2[4539],_mm256_xor_si256(c2[4359],_mm256_xor_si256(c2[415],_mm256_xor_si256(c2[5276],_mm256_xor_si256(c2[4916],_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[2415],_mm256_xor_si256(c2[4032],_mm256_xor_si256(c2[3852],_mm256_xor_si256(c2[272],_mm256_xor_si256(c2[810],_mm256_xor_si256(c2[630],_mm256_xor_si256(c2[3351],_mm256_xor_si256(c2[3530],_mm256_xor_si256(c2[1730],_mm256_xor_si256(c2[1550],_mm256_xor_si256(c2[309],_mm256_xor_si256(c2[3187],_mm256_xor_si256(c2[3007],_mm256_xor_si256(c2[866],_mm256_xor_si256(c2[2667],_mm256_xor_si256(c2[148],_mm256_xor_si256(c2[5727],_mm256_xor_si256(c2[5565],_mm256_xor_si256(c2[3223],_mm256_xor_si256(c2[2864],c2[2684]))))))))))))))))))))))))))))))))));
//row: 4
d2[36]=_mm256_xor_si256(c2[3961],_mm256_xor_si256(c2[3781],_mm256_xor_si256(c2[902],_mm256_xor_si256(c2[3064],_mm256_xor_si256(c2[1801],_mm256_xor_si256(c2[2360],_mm256_xor_si256(c2[2180],_mm256_xor_si256(c2[5062],_mm256_xor_si256(c2[1823],_mm256_xor_si256(c2[4338],_mm256_xor_si256(c2[1479],_mm256_xor_si256(c2[1299],_mm256_xor_si256(c2[2021],_mm256_xor_si256(c2[4016],_mm256_xor_si256(c2[3836],_mm256_xor_si256(c2[2938],_mm256_xor_si256(c2[2578],_mm256_xor_si256(c2[4756],_mm256_xor_si256(c2[77],_mm256_xor_si256(c2[1514],_mm256_xor_si256(c2[3693],_mm256_xor_si256(c2[4051],_mm256_xor_si256(c2[1193],_mm256_xor_si256(c2[1013],_mm256_xor_si256(c2[1192],_mm256_xor_si256(c2[4971],_mm256_xor_si256(c2[3730],_mm256_xor_si256(c2[669],_mm256_xor_si256(c2[4287],_mm256_xor_si256(c2[329],_mm256_xor_si256(c2[3389],_mm256_xor_si256(c2[3407],_mm256_xor_si256(c2[3227],_mm256_xor_si256(c2[885],c2[346]))))))))))))))))))))))))))))))))));
//row: 5
d2[45]=_mm256_xor_si256(c2[1802],_mm256_xor_si256(c2[1622],_mm256_xor_si256(c2[4502],_mm256_xor_si256(c2[905],_mm256_xor_si256(c2[1441],_mm256_xor_si256(c2[201],_mm256_xor_si256(c2[21],_mm256_xor_si256(c2[2903],_mm256_xor_si256(c2[5423],_mm256_xor_si256(c2[2182],_mm256_xor_si256(c2[5079],_mm256_xor_si256(c2[4899],_mm256_xor_si256(c2[5621],_mm256_xor_si256(c2[1857],_mm256_xor_si256(c2[1677],_mm256_xor_si256(c2[779],_mm256_xor_si256(c2[419],_mm256_xor_si256(c2[2597],_mm256_xor_si256(c2[3677],_mm256_xor_si256(c2[5114],_mm256_xor_si256(c2[1534],_mm256_xor_si256(c2[1892],_mm256_xor_si256(c2[3692],_mm256_xor_si256(c2[4793],_mm256_xor_si256(c2[4613],_mm256_xor_si256(c2[4792],_mm256_xor_si256(c2[2812],_mm256_xor_si256(c2[1571],_mm256_xor_si256(c2[4269],_mm256_xor_si256(c2[1750],_mm256_xor_si256(c2[2128],_mm256_xor_si256(c2[3929],_mm256_xor_si256(c2[1230],_mm256_xor_si256(c2[1248],_mm256_xor_si256(c2[1068],_mm256_xor_si256(c2[4485],c2[3946]))))))))))))))))))))))))))))))))))));
//row: 6
d2[54]=_mm256_xor_si256(c2[2524],_mm256_xor_si256(c2[2344],_mm256_xor_si256(c2[5224],_mm256_xor_si256(c2[1627],_mm256_xor_si256(c2[2343],_mm256_xor_si256(c2[923],_mm256_xor_si256(c2[743],_mm256_xor_si256(c2[3625],_mm256_xor_si256(c2[386],_mm256_xor_si256(c2[42],_mm256_xor_si256(c2[5621],_mm256_xor_si256(c2[584],_mm256_xor_si256(c2[2579],_mm256_xor_si256(c2[2399],_mm256_xor_si256(c2[1501],_mm256_xor_si256(c2[1141],_mm256_xor_si256(c2[3319],_mm256_xor_si256(c2[4399],_mm256_xor_si256(c2[77],_mm256_xor_si256(c2[2256],_mm256_xor_si256(c2[2614],_mm256_xor_si256(c2[4232],_mm256_xor_si256(c2[5515],_mm256_xor_si256(c2[5335],_mm256_xor_si256(c2[5514],_mm256_xor_si256(c2[3534],_mm256_xor_si256(c2[2293],_mm256_xor_si256(c2[4991],_mm256_xor_si256(c2[2109],_mm256_xor_si256(c2[2850],_mm256_xor_si256(c2[4651],_mm256_xor_si256(c2[1952],_mm256_xor_si256(c2[1970],_mm256_xor_si256(c2[1790],_mm256_xor_si256(c2[5207],_mm256_xor_si256(c2[4668],c2[1066]))))))))))))))))))))))))))))))))))));
//row: 7
d2[63]=_mm256_xor_si256(c2[2703],_mm256_xor_si256(c2[2523],_mm256_xor_si256(c2[542],_mm256_xor_si256(c2[5403],_mm256_xor_si256(c2[3422],_mm256_xor_si256(c2[1806],_mm256_xor_si256(c2[5584],_mm256_xor_si256(c2[1102],_mm256_xor_si256(c2[922],_mm256_xor_si256(c2[4700],_mm256_xor_si256(c2[3804],_mm256_xor_si256(c2[1823],_mm256_xor_si256(c2[565],_mm256_xor_si256(c2[4523],_mm256_xor_si256(c2[4343],_mm256_xor_si256(c2[201],_mm256_xor_si256(c2[221],_mm256_xor_si256(c2[41],_mm256_xor_si256(c2[3819],_mm256_xor_si256(c2[763],_mm256_xor_si256(c2[4721],_mm256_xor_si256(c2[4541],_mm256_xor_si256(c2[2758],_mm256_xor_si256(c2[2578],_mm256_xor_si256(c2[597],_mm256_xor_si256(c2[1680],_mm256_xor_si256(c2[5458],_mm256_xor_si256(c2[1320],_mm256_xor_si256(c2[5098],_mm256_xor_si256(c2[3498],_mm256_xor_si256(c2[1517],_mm256_xor_si256(c2[4578],_mm256_xor_si256(c2[2597],_mm256_xor_si256(c2[256],_mm256_xor_si256(c2[4214],_mm256_xor_si256(c2[4034],_mm256_xor_si256(c2[2435],_mm256_xor_si256(c2[454],_mm256_xor_si256(c2[2793],_mm256_xor_si256(c2[992],_mm256_xor_si256(c2[812],_mm256_xor_si256(c2[1354],_mm256_xor_si256(c2[5694],_mm256_xor_si256(c2[5514],_mm256_xor_si256(c2[3533],_mm256_xor_si256(c2[5693],_mm256_xor_si256(c2[3712],_mm256_xor_si256(c2[3713],_mm256_xor_si256(c2[1912],_mm256_xor_si256(c2[1732],_mm256_xor_si256(c2[2472],_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[5170],_mm256_xor_si256(c2[3369],_mm256_xor_si256(c2[3189],_mm256_xor_si256(c2[667],_mm256_xor_si256(c2[3029],_mm256_xor_si256(c2[1048],_mm256_xor_si256(c2[4830],_mm256_xor_si256(c2[2849],_mm256_xor_si256(c2[2131],_mm256_xor_si256(c2[330],_mm256_xor_si256(c2[150],_mm256_xor_si256(c2[2149],_mm256_xor_si256(c2[1969],_mm256_xor_si256(c2[5747],_mm256_xor_si256(c2[5386],_mm256_xor_si256(c2[3405],_mm256_xor_si256(c2[4847],_mm256_xor_si256(c2[3046],c2[2866]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 8
d2[72]=_mm256_xor_si256(c2[4862],_mm256_xor_si256(c2[4682],_mm256_xor_si256(c2[1983],_mm256_xor_si256(c2[1803],_mm256_xor_si256(c2[3965],_mm256_xor_si256(c2[1082],_mm256_xor_si256(c2[3261],_mm256_xor_si256(c2[3081],_mm256_xor_si256(c2[204],_mm256_xor_si256(c2[2724],_mm256_xor_si256(c2[920],_mm256_xor_si256(c2[2380],_mm256_xor_si256(c2[2200],_mm256_xor_si256(c2[2922],_mm256_xor_si256(c2[4917],_mm256_xor_si256(c2[4737],_mm256_xor_si256(c2[4019],_mm256_xor_si256(c2[3839],_mm256_xor_si256(c2[3479],_mm256_xor_si256(c2[78],_mm256_xor_si256(c2[5657],_mm256_xor_si256(c2[978],_mm256_xor_si256(c2[2415],_mm256_xor_si256(c2[4774],_mm256_xor_si256(c2[4594],_mm256_xor_si256(c2[4952],_mm256_xor_si256(c2[2094],_mm256_xor_si256(c2[1914],_mm256_xor_si256(c2[2273],_mm256_xor_si256(c2[2093],_mm256_xor_si256(c2[113],_mm256_xor_si256(c2[4811],_mm256_xor_si256(c2[4631],_mm256_xor_si256(c2[1570],_mm256_xor_si256(c2[5368],_mm256_xor_si256(c2[5188],_mm256_xor_si256(c2[1230],_mm256_xor_si256(c2[4290],_mm256_xor_si256(c2[4308],_mm256_xor_si256(c2[4128],_mm256_xor_si256(c2[1966],_mm256_xor_si256(c2[1786],c2[1247]))))))))))))))))))))))))))))))))))))))))));
//row: 9
d2[81]=_mm256_xor_si256(c2[4680],_mm256_xor_si256(c2[3601],_mm256_xor_si256(c2[3421],_mm256_xor_si256(c2[1801],_mm256_xor_si256(c2[542],_mm256_xor_si256(c2[3963],_mm256_xor_si256(c2[2704],_mm256_xor_si256(c2[3079],_mm256_xor_si256(c2[2000],_mm256_xor_si256(c2[1820],_mm256_xor_si256(c2[202],_mm256_xor_si256(c2[4702],_mm256_xor_si256(c2[2722],_mm256_xor_si256(c2[1463],_mm256_xor_si256(c2[201],_mm256_xor_si256(c2[2198],_mm256_xor_si256(c2[1119],_mm256_xor_si256(c2[939],_mm256_xor_si256(c2[2920],_mm256_xor_si256(c2[1661],_mm256_xor_si256(c2[4735],_mm256_xor_si256(c2[3656],_mm256_xor_si256(c2[3476],_mm256_xor_si256(c2[3837],_mm256_xor_si256(c2[2578],_mm256_xor_si256(c2[3477],_mm256_xor_si256(c2[2218],_mm256_xor_si256(c2[5655],_mm256_xor_si256(c2[4396],_mm256_xor_si256(c2[976],_mm256_xor_si256(c2[5476],_mm256_xor_si256(c2[2413],_mm256_xor_si256(c2[1154],_mm256_xor_si256(c2[4592],_mm256_xor_si256(c2[3333],_mm256_xor_si256(c2[4950],_mm256_xor_si256(c2[3691],_mm256_xor_si256(c2[1912],_mm256_xor_si256(c2[833],_mm256_xor_si256(c2[653],_mm256_xor_si256(c2[2091],_mm256_xor_si256(c2[832],_mm256_xor_si256(c2[111],_mm256_xor_si256(c2[4611],_mm256_xor_si256(c2[4629],_mm256_xor_si256(c2[3370],_mm256_xor_si256(c2[1568],_mm256_xor_si256(c2[309],_mm256_xor_si256(c2[5186],_mm256_xor_si256(c2[3927],_mm256_xor_si256(c2[1228],_mm256_xor_si256(c2[5728],_mm256_xor_si256(c2[4288],_mm256_xor_si256(c2[3029],_mm256_xor_si256(c2[1585],_mm256_xor_si256(c2[4126],_mm256_xor_si256(c2[3047],_mm256_xor_si256(c2[2867],_mm256_xor_si256(c2[1784],_mm256_xor_si256(c2[525],_mm256_xor_si256(c2[1245],c2[5745])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 10
d2[90]=_mm256_xor_si256(c2[2521],_mm256_xor_si256(c2[1639],_mm256_xor_si256(c2[1011],c2[129])));
//row: 11
d2[99]=_mm256_xor_si256(c2[362],_mm256_xor_si256(c2[3242],_mm256_xor_si256(c2[5404],_mm256_xor_si256(c2[5040],_mm256_xor_si256(c2[4520],_mm256_xor_si256(c2[1643],_mm256_xor_si256(c2[4343],_mm256_xor_si256(c2[4163],_mm256_xor_si256(c2[3639],_mm256_xor_si256(c2[4541],_mm256_xor_si256(c2[4361],_mm256_xor_si256(c2[417],_mm256_xor_si256(c2[5278],_mm256_xor_si256(c2[4918],_mm256_xor_si256(c2[1337],_mm256_xor_si256(c2[2417],_mm256_xor_si256(c2[4034],_mm256_xor_si256(c2[3854],_mm256_xor_si256(c2[274],_mm256_xor_si256(c2[812],_mm256_xor_si256(c2[632],_mm256_xor_si256(c2[3353],_mm256_xor_si256(c2[3532],_mm256_xor_si256(c2[1732],_mm256_xor_si256(c2[1552],_mm256_xor_si256(c2[311],_mm256_xor_si256(c2[3189],_mm256_xor_si256(c2[3009],_mm256_xor_si256(c2[5526],_mm256_xor_si256(c2[868],_mm256_xor_si256(c2[2669],_mm256_xor_si256(c2[150],_mm256_xor_si256(c2[5729],_mm256_xor_si256(c2[5567],_mm256_xor_si256(c2[3225],_mm256_xor_si256(c2[2866],_mm256_xor_si256(c2[2686],c2[3765])))))))))))))))))))))))))))))))))))));
//row: 12
d2[108]=_mm256_xor_si256(c2[1084],_mm256_xor_si256(c2[904],_mm256_xor_si256(c2[3784],_mm256_xor_si256(c2[187],_mm256_xor_si256(c2[5242],_mm256_xor_si256(c2[5062],_mm256_xor_si256(c2[2185],_mm256_xor_si256(c2[4705],_mm256_xor_si256(c2[199],_mm256_xor_si256(c2[4361],_mm256_xor_si256(c2[4181],_mm256_xor_si256(c2[4903],_mm256_xor_si256(c2[1139],_mm256_xor_si256(c2[959],_mm256_xor_si256(c2[61],_mm256_xor_si256(c2[5460],_mm256_xor_si256(c2[4737],_mm256_xor_si256(c2[1879],_mm256_xor_si256(c2[2959],_mm256_xor_si256(c2[4396],_mm256_xor_si256(c2[816],_mm256_xor_si256(c2[1174],_mm256_xor_si256(c2[4075],_mm256_xor_si256(c2[3895],_mm256_xor_si256(c2[4074],_mm256_xor_si256(c2[2094],_mm256_xor_si256(c2[853],_mm256_xor_si256(c2[3551],_mm256_xor_si256(c2[1410],_mm256_xor_si256(c2[3211],_mm256_xor_si256(c2[512],_mm256_xor_si256(c2[530],_mm256_xor_si256(c2[350],_mm256_xor_si256(c2[3767],c2[3228]))))))))))))))))))))))))))))))))));
//row: 13
d2[117]=_mm256_xor_si256(c2[3061],_mm256_xor_si256(c2[182],_mm256_xor_si256(c2[2344],_mm256_xor_si256(c2[2162],_mm256_xor_si256(c2[1460],_mm256_xor_si256(c2[4342],_mm256_xor_si256(c2[1283],_mm256_xor_si256(c2[1103],_mm256_xor_si256(c2[919],_mm256_xor_si256(c2[579],_mm256_xor_si256(c2[1481],_mm256_xor_si256(c2[1301],_mm256_xor_si256(c2[3116],_mm256_xor_si256(c2[2218],_mm256_xor_si256(c2[1858],_mm256_xor_si256(c2[4036],_mm256_xor_si256(c2[5116],_mm256_xor_si256(c2[974],_mm256_xor_si256(c2[794],_mm256_xor_si256(c2[2973],_mm256_xor_si256(c2[3511],_mm256_xor_si256(c2[3331],_mm256_xor_si256(c2[293],_mm256_xor_si256(c2[472],_mm256_xor_si256(c2[4431],_mm256_xor_si256(c2[4251],_mm256_xor_si256(c2[3010],_mm256_xor_si256(c2[129],_mm256_xor_si256(c2[5708],_mm256_xor_si256(c2[3567],_mm256_xor_si256(c2[5368],_mm256_xor_si256(c2[2849],_mm256_xor_si256(c2[2669],_mm256_xor_si256(c2[5545],_mm256_xor_si256(c2[2507],_mm256_xor_si256(c2[165],_mm256_xor_si256(c2[5565],c2[5385])))))))))))))))))))))))))))))))))))));
//row: 14
d2[126]=_mm256_xor_si256(c2[904],_mm256_xor_si256(c2[724],_mm256_xor_si256(c2[543],_mm256_xor_si256(c2[3604],_mm256_xor_si256(c2[3423],_mm256_xor_si256(c2[7],_mm256_xor_si256(c2[5585],_mm256_xor_si256(c2[5062],_mm256_xor_si256(c2[4882],_mm256_xor_si256(c2[4701],_mm256_xor_si256(c2[2005],_mm256_xor_si256(c2[1824],_mm256_xor_si256(c2[4525],_mm256_xor_si256(c2[4524],_mm256_xor_si256(c2[4344],_mm256_xor_si256(c2[2722],_mm256_xor_si256(c2[4181],_mm256_xor_si256(c2[4001],_mm256_xor_si256(c2[3820],_mm256_xor_si256(c2[4723],_mm256_xor_si256(c2[4722],_mm256_xor_si256(c2[4542],_mm256_xor_si256(c2[959],_mm256_xor_si256(c2[779],_mm256_xor_si256(c2[598],_mm256_xor_si256(c2[5640],_mm256_xor_si256(c2[5459],_mm256_xor_si256(c2[5280],_mm256_xor_si256(c2[5099],_mm256_xor_si256(c2[1699],_mm256_xor_si256(c2[1518],_mm256_xor_si256(c2[2779],_mm256_xor_si256(c2[2598],_mm256_xor_si256(c2[4216],_mm256_xor_si256(c2[4215],_mm256_xor_si256(c2[4035],_mm256_xor_si256(c2[636],_mm256_xor_si256(c2[455],_mm256_xor_si256(c2[994],_mm256_xor_si256(c2[993],_mm256_xor_si256(c2[813],_mm256_xor_si256(c2[3895],_mm256_xor_si256(c2[3715],_mm256_xor_si256(c2[3534],_mm256_xor_si256(c2[3894],_mm256_xor_si256(c2[3713],_mm256_xor_si256(c2[1914],_mm256_xor_si256(c2[1913],_mm256_xor_si256(c2[1733],_mm256_xor_si256(c2[3529],_mm256_xor_si256(c2[673],_mm256_xor_si256(c2[492],_mm256_xor_si256(c2[3371],_mm256_xor_si256(c2[3370],_mm256_xor_si256(c2[3190],_mm256_xor_si256(c2[1230],_mm256_xor_si256(c2[1049],_mm256_xor_si256(c2[3031],_mm256_xor_si256(c2[2850],_mm256_xor_si256(c2[332],_mm256_xor_si256(c2[331],_mm256_xor_si256(c2[151],_mm256_xor_si256(c2[350],_mm256_xor_si256(c2[170],_mm256_xor_si256(c2[5748],_mm256_xor_si256(c2[3587],_mm256_xor_si256(c2[3406],_mm256_xor_si256(c2[3048],_mm256_xor_si256(c2[3047],c2[2867])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 15
d2[135]=_mm256_xor_si256(c2[363],_mm256_xor_si256(c2[544],_mm256_xor_si256(c2[364],_mm256_xor_si256(c2[3243],_mm256_xor_si256(c2[3244],_mm256_xor_si256(c2[5405],_mm256_xor_si256(c2[5406],_mm256_xor_si256(c2[1984],_mm256_xor_si256(c2[4521],_mm256_xor_si256(c2[4702],_mm256_xor_si256(c2[4522],_mm256_xor_si256(c2[1644],_mm256_xor_si256(c2[1645],_mm256_xor_si256(c2[4164],_mm256_xor_si256(c2[4165],_mm256_xor_si256(c2[3640],_mm256_xor_si256(c2[3821],_mm256_xor_si256(c2[3641],_mm256_xor_si256(c2[4362],_mm256_xor_si256(c2[4363],_mm256_xor_si256(c2[418],_mm256_xor_si256(c2[599],_mm256_xor_si256(c2[419],_mm256_xor_si256(c2[5279],_mm256_xor_si256(c2[5280],_mm256_xor_si256(c2[4919],_mm256_xor_si256(c2[4920],_mm256_xor_si256(c2[1338],_mm256_xor_si256(c2[1339],_mm256_xor_si256(c2[2418],_mm256_xor_si256(c2[2419],_mm256_xor_si256(c2[3855],_mm256_xor_si256(c2[3856],_mm256_xor_si256(c2[275],_mm256_xor_si256(c2[276],_mm256_xor_si256(c2[633],_mm256_xor_si256(c2[634],_mm256_xor_si256(c2[3354],_mm256_xor_si256(c2[3535],_mm256_xor_si256(c2[3355],_mm256_xor_si256(c2[3533],_mm256_xor_si256(c2[3534],_mm256_xor_si256(c2[1553],_mm256_xor_si256(c2[1554],_mm256_xor_si256(c2[312],_mm256_xor_si256(c2[313],_mm256_xor_si256(c2[3010],_mm256_xor_si256(c2[3011],_mm256_xor_si256(c2[869],_mm256_xor_si256(c2[870],_mm256_xor_si256(c2[2670],_mm256_xor_si256(c2[2671],_mm256_xor_si256(c2[5730],_mm256_xor_si256(c2[5731],_mm256_xor_si256(c2[5568],_mm256_xor_si256(c2[5749],_mm256_xor_si256(c2[5569],_mm256_xor_si256(c2[3226],_mm256_xor_si256(c2[3227],_mm256_xor_si256(c2[2687],c2[2688]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 16
d2[144]=_mm256_xor_si256(c2[5580],_mm256_xor_si256(c2[5400],_mm256_xor_si256(c2[1980],_mm256_xor_si256(c2[1800],_mm256_xor_si256(c2[2521],_mm256_xor_si256(c2[4860],_mm256_xor_si256(c2[4680],_mm256_xor_si256(c2[4683],_mm256_xor_si256(c2[1083],_mm256_xor_si256(c2[3979],_mm256_xor_si256(c2[3799],_mm256_xor_si256(c2[379],_mm256_xor_si256(c2[199],_mm256_xor_si256(c2[922],_mm256_xor_si256(c2[3081],_mm256_xor_si256(c2[3442],_mm256_xor_si256(c2[5601],_mm256_xor_si256(c2[2899],_mm256_xor_si256(c2[3098],_mm256_xor_si256(c2[2918],_mm256_xor_si256(c2[5257],_mm256_xor_si256(c2[5077],_mm256_xor_si256(c2[3640],_mm256_xor_si256(c2[40],_mm256_xor_si256(c2[5635],_mm256_xor_si256(c2[5455],_mm256_xor_si256(c2[2035],_mm256_xor_si256(c2[1855],_mm256_xor_si256(c2[4557],_mm256_xor_si256(c2[1137],_mm256_xor_si256(c2[957],_mm256_xor_si256(c2[4197],_mm256_xor_si256(c2[597],_mm256_xor_si256(c2[616],_mm256_xor_si256(c2[2955],_mm256_xor_si256(c2[2775],_mm256_xor_si256(c2[1696],_mm256_xor_si256(c2[3855],_mm256_xor_si256(c2[3133],_mm256_xor_si256(c2[5292],_mm256_xor_si256(c2[5312],_mm256_xor_si256(c2[1892],_mm256_xor_si256(c2[1712],_mm256_xor_si256(c2[5670],_mm256_xor_si256(c2[2070],_mm256_xor_si256(c2[2812],_mm256_xor_si256(c2[2632],_mm256_xor_si256(c2[4971],_mm256_xor_si256(c2[4791],_mm256_xor_si256(c2[2811],_mm256_xor_si256(c2[5150],_mm256_xor_si256(c2[4970],_mm256_xor_si256(c2[831],_mm256_xor_si256(c2[2990],_mm256_xor_si256(c2[5349],_mm256_xor_si256(c2[1929],_mm256_xor_si256(c2[1749],_mm256_xor_si256(c2[2288],_mm256_xor_si256(c2[4447],_mm256_xor_si256(c2[147],_mm256_xor_si256(c2[2486],_mm256_xor_si256(c2[2306],_mm256_xor_si256(c2[1948],_mm256_xor_si256(c2[4107],_mm256_xor_si256(c2[5008],_mm256_xor_si256(c2[1408],_mm256_xor_si256(c2[5026],_mm256_xor_si256(c2[4846],_mm256_xor_si256(c2[1426],_mm256_xor_si256(c2[1246],_mm256_xor_si256(c2[2504],_mm256_xor_si256(c2[4843],_mm256_xor_si256(c2[4663],_mm256_xor_si256(c2[1965],_mm256_xor_si256(c2[4124],c2[1782])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 17
d2[153]=_mm256_xor_si256(c2[722],_mm256_xor_si256(c2[542],_mm256_xor_si256(c2[2341],_mm256_xor_si256(c2[2161],_mm256_xor_si256(c2[3422],_mm256_xor_si256(c2[5221],_mm256_xor_si256(c2[5041],_mm256_xor_si256(c2[5584],_mm256_xor_si256(c2[1444],_mm256_xor_si256(c2[4880],_mm256_xor_si256(c2[4700],_mm256_xor_si256(c2[740],_mm256_xor_si256(c2[560],_mm256_xor_si256(c2[1823],_mm256_xor_si256(c2[3442],_mm256_xor_si256(c2[4343],_mm256_xor_si256(c2[203],_mm256_xor_si256(c2[4341],_mm256_xor_si256(c2[3999],_mm256_xor_si256(c2[3819],_mm256_xor_si256(c2[5618],_mm256_xor_si256(c2[5438],_mm256_xor_si256(c2[4541],_mm256_xor_si256(c2[401],_mm256_xor_si256(c2[777],_mm256_xor_si256(c2[597],_mm256_xor_si256(c2[2396],_mm256_xor_si256(c2[2216],_mm256_xor_si256(c2[5458],_mm256_xor_si256(c2[1498],_mm256_xor_si256(c2[1318],_mm256_xor_si256(c2[5098],_mm256_xor_si256(c2[958],_mm256_xor_si256(c2[1517],_mm256_xor_si256(c2[3316],_mm256_xor_si256(c2[3136],_mm256_xor_si256(c2[2597],_mm256_xor_si256(c2[4216],_mm256_xor_si256(c2[4034],_mm256_xor_si256(c2[5653],_mm256_xor_si256(c2[454],_mm256_xor_si256(c2[2253],_mm256_xor_si256(c2[2073],_mm256_xor_si256(c2[812],_mm256_xor_si256(c2[2431],_mm256_xor_si256(c2[2071],_mm256_xor_si256(c2[3713],_mm256_xor_si256(c2[3533],_mm256_xor_si256(c2[5332],_mm256_xor_si256(c2[5152],_mm256_xor_si256(c2[3712],_mm256_xor_si256(c2[5511],_mm256_xor_si256(c2[5331],_mm256_xor_si256(c2[1732],_mm256_xor_si256(c2[3351],_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[2290],_mm256_xor_si256(c2[2110],_mm256_xor_si256(c2[3189],_mm256_xor_si256(c2[4808],_mm256_xor_si256(c2[1048],_mm256_xor_si256(c2[2847],_mm256_xor_si256(c2[2667],_mm256_xor_si256(c2[2849],_mm256_xor_si256(c2[4468],_mm256_xor_si256(c2[150],_mm256_xor_si256(c2[1769],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[5747],_mm256_xor_si256(c2[1787],_mm256_xor_si256(c2[1607],_mm256_xor_si256(c2[3405],_mm256_xor_si256(c2[5204],_mm256_xor_si256(c2[5024],_mm256_xor_si256(c2[2866],c2[4485])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 18
d2[162]=_mm256_xor_si256(c2[3060],_mm256_xor_si256(c2[1911],c2[2650]));
//row: 19
d2[171]=_mm256_xor_si256(c2[1981],_mm256_xor_si256(c2[4861],_mm256_xor_si256(c2[1264],_mm256_xor_si256(c2[2702],_mm256_xor_si256(c2[380],_mm256_xor_si256(c2[3262],_mm256_xor_si256(c2[23],_mm256_xor_si256(c2[5058],_mm256_xor_si256(c2[5258],_mm256_xor_si256(c2[221],_mm256_xor_si256(c2[2036],_mm256_xor_si256(c2[1138],_mm256_xor_si256(c2[778],_mm256_xor_si256(c2[2956],_mm256_xor_si256(c2[4036],_mm256_xor_si256(c2[5473],_mm256_xor_si256(c2[1893],_mm256_xor_si256(c2[2251],_mm256_xor_si256(c2[4972],_mm256_xor_si256(c2[5151],_mm256_xor_si256(c2[3171],_mm256_xor_si256(c2[1930],_mm256_xor_si256(c2[4628],_mm256_xor_si256(c2[2487],_mm256_xor_si256(c2[4288],_mm256_xor_si256(c2[1589],_mm256_xor_si256(c2[1427],_mm256_xor_si256(c2[4844],c2[4305]))))))))))))))))))))))))))));
//row: 20
d2[180]=_mm256_xor_si256(c2[3062],_mm256_xor_si256(c2[2882],_mm256_xor_si256(c2[3],_mm256_xor_si256(c2[2165],_mm256_xor_si256(c2[1461],_mm256_xor_si256(c2[1281],_mm256_xor_si256(c2[4163],_mm256_xor_si256(c2[924],_mm256_xor_si256(c2[378],_mm256_xor_si256(c2[580],_mm256_xor_si256(c2[400],_mm256_xor_si256(c2[1122],_mm256_xor_si256(c2[3117],_mm256_xor_si256(c2[2937],_mm256_xor_si256(c2[2039],_mm256_xor_si256(c2[1679],_mm256_xor_si256(c2[3857],_mm256_xor_si256(c2[4937],_mm256_xor_si256(c2[615],_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[2794],_mm256_xor_si256(c2[3152],_mm256_xor_si256(c2[294],_mm256_xor_si256(c2[114],_mm256_xor_si256(c2[293],_mm256_xor_si256(c2[4072],_mm256_xor_si256(c2[2831],_mm256_xor_si256(c2[5529],_mm256_xor_si256(c2[3388],_mm256_xor_si256(c2[5189],_mm256_xor_si256(c2[2490],_mm256_xor_si256(c2[2508],_mm256_xor_si256(c2[2328],_mm256_xor_si256(c2[5745],c2[5206]))))))))))))))))))))))))))))))))));
//row: 21
d2[189]=_mm256_xor_si256(c2[3422],_mm256_xor_si256(c2[543],_mm256_xor_si256(c2[2705],_mm256_xor_si256(c2[4862],_mm256_xor_si256(c2[1821],_mm256_xor_si256(c2[4703],_mm256_xor_si256(c2[1644],_mm256_xor_si256(c2[1464],_mm256_xor_si256(c2[940],_mm256_xor_si256(c2[1842],_mm256_xor_si256(c2[1662],_mm256_xor_si256(c2[3477],_mm256_xor_si256(c2[2579],_mm256_xor_si256(c2[2219],_mm256_xor_si256(c2[4397],_mm256_xor_si256(c2[5477],_mm256_xor_si256(c2[1335],_mm256_xor_si256(c2[1155],_mm256_xor_si256(c2[3334],_mm256_xor_si256(c2[3872],_mm256_xor_si256(c2[3692],_mm256_xor_si256(c2[654],_mm256_xor_si256(c2[833],_mm256_xor_si256(c2[4792],_mm256_xor_si256(c2[4612],_mm256_xor_si256(c2[3371],_mm256_xor_si256(c2[490],_mm256_xor_si256(c2[310],_mm256_xor_si256(c2[3928],_mm256_xor_si256(c2[5729],_mm256_xor_si256(c2[3210],_mm256_xor_si256(c2[3030],_mm256_xor_si256(c2[2126],_mm256_xor_si256(c2[2868],_mm256_xor_si256(c2[526],_mm256_xor_si256(c2[167],c2[5746]))))))))))))))))))))))))))))))))))));
//row: 22
d2[198]=_mm256_xor_si256(c2[3979],c2[760]);
//row: 23
d2[207]=_mm256_xor_si256(c2[722],_mm256_xor_si256(c2[3477],c2[4411]));
//row: 24
d2[216]=_mm256_xor_si256(c2[5418],_mm256_xor_si256(c2[1837],c2[1065]));
//row: 25
d2[225]=_mm256_xor_si256(c2[4],c2[5671]);
//row: 26
d2[234]=_mm256_xor_si256(c2[1263],_mm256_xor_si256(c2[1083],_mm256_xor_si256(c2[1264],_mm256_xor_si256(c2[4143],_mm256_xor_si256(c2[3963],_mm256_xor_si256(c2[4144],_mm256_xor_si256(c2[366],_mm256_xor_si256(c2[547],_mm256_xor_si256(c2[5421],_mm256_xor_si256(c2[5241],_mm256_xor_si256(c2[5422],_mm256_xor_si256(c2[2364],_mm256_xor_si256(c2[2545],_mm256_xor_si256(c2[4884],_mm256_xor_si256(c2[5245],_mm256_xor_si256(c2[5065],_mm256_xor_si256(c2[4540],_mm256_xor_si256(c2[4360],_mm256_xor_si256(c2[4541],_mm256_xor_si256(c2[5082],_mm256_xor_si256(c2[5443],_mm256_xor_si256(c2[5263],_mm256_xor_si256(c2[2560],_mm256_xor_si256(c2[1318],_mm256_xor_si256(c2[1138],_mm256_xor_si256(c2[1319],_mm256_xor_si256(c2[420],_mm256_xor_si256(c2[240],_mm256_xor_si256(c2[421],_mm256_xor_si256(c2[5639],_mm256_xor_si256(c2[61],_mm256_xor_si256(c2[2238],_mm256_xor_si256(c2[2058],_mm256_xor_si256(c2[2239],_mm256_xor_si256(c2[3138],_mm256_xor_si256(c2[3319],_mm256_xor_si256(c2[4575],_mm256_xor_si256(c2[4936],_mm256_xor_si256(c2[4756],_mm256_xor_si256(c2[1175],_mm256_xor_si256(c2[995],_mm256_xor_si256(c2[1176],_mm256_xor_si256(c2[1353],_mm256_xor_si256(c2[1714],_mm256_xor_si256(c2[1534],_mm256_xor_si256(c2[4254],_mm256_xor_si256(c2[4074],_mm256_xor_si256(c2[4255],_mm256_xor_si256(c2[4433],_mm256_xor_si256(c2[4253],_mm256_xor_si256(c2[4434],_mm256_xor_si256(c2[2273],_mm256_xor_si256(c2[2634],_mm256_xor_si256(c2[2454],_mm256_xor_si256(c2[1212],_mm256_xor_si256(c2[1032],_mm256_xor_si256(c2[1213],_mm256_xor_si256(c2[3730],_mm256_xor_si256(c2[4091],_mm256_xor_si256(c2[3911],_mm256_xor_si256(c2[5166],_mm256_xor_si256(c2[1769],_mm256_xor_si256(c2[1589],_mm256_xor_si256(c2[1770],_mm256_xor_si256(c2[3390],_mm256_xor_si256(c2[3571],_mm256_xor_si256(c2[691],_mm256_xor_si256(c2[1052],_mm256_xor_si256(c2[872],_mm256_xor_si256(c2[709],_mm256_xor_si256(c2[529],_mm256_xor_si256(c2[710],_mm256_xor_si256(c2[4126],_mm256_xor_si256(c2[3946],_mm256_xor_si256(c2[4127],_mm256_xor_si256(c2[3407],_mm256_xor_si256(c2[3768],c2[3588])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 27
d2[243]=_mm256_xor_si256(c2[2340],c2[1908]);
//row: 28
d2[252]=_mm256_xor_si256(c2[1821],_mm256_xor_si256(c2[2378],c2[2071]));
//row: 29
d2[261]=_mm256_xor_si256(c2[904],c2[4572]);
//row: 30
d2[270]=_mm256_xor_si256(c2[4178],_mm256_xor_si256(c2[4411],_mm256_xor_si256(c2[1569],c2[1244])));
//row: 31
d2[279]=_mm256_xor_si256(c2[2344],_mm256_xor_si256(c2[5224],_mm256_xor_si256(c2[1627],_mm256_xor_si256(c2[743],_mm256_xor_si256(c2[3625],_mm256_xor_si256(c2[566],_mm256_xor_si256(c2[386],_mm256_xor_si256(c2[2900],_mm256_xor_si256(c2[5621],_mm256_xor_si256(c2[764],_mm256_xor_si256(c2[584],_mm256_xor_si256(c2[2399],_mm256_xor_si256(c2[1501],_mm256_xor_si256(c2[1141],_mm256_xor_si256(c2[3319],_mm256_xor_si256(c2[4399],_mm256_xor_si256(c2[257],_mm256_xor_si256(c2[77],_mm256_xor_si256(c2[2256],_mm256_xor_si256(c2[2794],_mm256_xor_si256(c2[2614],_mm256_xor_si256(c2[5335],_mm256_xor_si256(c2[5514],_mm256_xor_si256(c2[3714],_mm256_xor_si256(c2[3534],_mm256_xor_si256(c2[2293],_mm256_xor_si256(c2[5171],_mm256_xor_si256(c2[4991],_mm256_xor_si256(c2[2850],_mm256_xor_si256(c2[4651],_mm256_xor_si256(c2[2132],_mm256_xor_si256(c2[1952],_mm256_xor_si256(c2[1790],_mm256_xor_si256(c2[5207],_mm256_xor_si256(c2[4848],c2[4668])))))))))))))))))))))))))))))))))));
//row: 32
d2[288]=_mm256_xor_si256(c2[1802],_mm256_xor_si256(c2[1622],_mm256_xor_si256(c2[4682],_mm256_xor_si256(c2[4502],_mm256_xor_si256(c2[905],_mm256_xor_si256(c2[1],_mm256_xor_si256(c2[201],_mm256_xor_si256(c2[21],_mm256_xor_si256(c2[2903],_mm256_xor_si256(c2[5423],_mm256_xor_si256(c2[5079],_mm256_xor_si256(c2[4899],_mm256_xor_si256(c2[5621],_mm256_xor_si256(c2[1857],_mm256_xor_si256(c2[1677],_mm256_xor_si256(c2[959],_mm256_xor_si256(c2[779],_mm256_xor_si256(c2[419],_mm256_xor_si256(c2[2777],_mm256_xor_si256(c2[2597],_mm256_xor_si256(c2[3677],_mm256_xor_si256(c2[5114],_mm256_xor_si256(c2[1714],_mm256_xor_si256(c2[1534],_mm256_xor_si256(c2[1892],_mm256_xor_si256(c2[4592],_mm256_xor_si256(c2[4793],_mm256_xor_si256(c2[4613],_mm256_xor_si256(c2[4972],_mm256_xor_si256(c2[4792],_mm256_xor_si256(c2[2812],_mm256_xor_si256(c2[1751],_mm256_xor_si256(c2[1571],_mm256_xor_si256(c2[4269],_mm256_xor_si256(c2[2308],_mm256_xor_si256(c2[2128],_mm256_xor_si256(c2[3929],_mm256_xor_si256(c2[1230],_mm256_xor_si256(c2[1248],_mm256_xor_si256(c2[1068],_mm256_xor_si256(c2[4665],_mm256_xor_si256(c2[4485],c2[3946]))))))))))))))))))))))))))))))))))))))))));
//row: 33
d2[297]=_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[3600],_mm256_xor_si256(c2[3],_mm256_xor_si256(c2[4878],_mm256_xor_si256(c2[2001],_mm256_xor_si256(c2[4521],_mm256_xor_si256(c2[3997],_mm256_xor_si256(c2[4719],_mm256_xor_si256(c2[1300],_mm256_xor_si256(c2[775],_mm256_xor_si256(c2[5636],_mm256_xor_si256(c2[5276],_mm256_xor_si256(c2[1695],_mm256_xor_si256(c2[2775],_mm256_xor_si256(c2[4212],_mm256_xor_si256(c2[632],_mm256_xor_si256(c2[990],_mm256_xor_si256(c2[3711],_mm256_xor_si256(c2[3890],_mm256_xor_si256(c2[1910],_mm256_xor_si256(c2[669],_mm256_xor_si256(c2[3367],_mm256_xor_si256(c2[1206],_mm256_xor_si256(c2[1226],_mm256_xor_si256(c2[3027],_mm256_xor_si256(c2[328],_mm256_xor_si256(c2[166],_mm256_xor_si256(c2[3583],c2[3044]))))))))))))))))))))))))))));
//row: 34
d2[306]=_mm256_xor_si256(c2[5040],_mm256_xor_si256(c2[4860],_mm256_xor_si256(c2[3603],_mm256_xor_si256(c2[2161],_mm256_xor_si256(c2[1981],_mm256_xor_si256(c2[724],_mm256_xor_si256(c2[4143],_mm256_xor_si256(c2[2886],_mm256_xor_si256(c2[901],_mm256_xor_si256(c2[3439],_mm256_xor_si256(c2[3259],_mm256_xor_si256(c2[2002],_mm256_xor_si256(c2[382],_mm256_xor_si256(c2[4884],_mm256_xor_si256(c2[2902],_mm256_xor_si256(c2[1825],_mm256_xor_si256(c2[1645],_mm256_xor_si256(c2[2558],_mm256_xor_si256(c2[2378],_mm256_xor_si256(c2[1121],_mm256_xor_si256(c2[3100],_mm256_xor_si256(c2[2023],_mm256_xor_si256(c2[1843],_mm256_xor_si256(c2[5095],_mm256_xor_si256(c2[4915],_mm256_xor_si256(c2[3658],_mm256_xor_si256(c2[4197],_mm256_xor_si256(c2[4017],_mm256_xor_si256(c2[2760],_mm256_xor_si256(c2[3657],_mm256_xor_si256(c2[2400],_mm256_xor_si256(c2[256],_mm256_xor_si256(c2[76],_mm256_xor_si256(c2[4578],_mm256_xor_si256(c2[1156],_mm256_xor_si256(c2[5658],_mm256_xor_si256(c2[2593],_mm256_xor_si256(c2[1516],_mm256_xor_si256(c2[1336],_mm256_xor_si256(c2[4952],_mm256_xor_si256(c2[4772],_mm256_xor_si256(c2[3515],_mm256_xor_si256(c2[5130],_mm256_xor_si256(c2[4053],_mm256_xor_si256(c2[3873],_mm256_xor_si256(c2[2272],_mm256_xor_si256(c2[2092],_mm256_xor_si256(c2[835],_mm256_xor_si256(c2[2451],_mm256_xor_si256(c2[2271],_mm256_xor_si256(c2[1014],_mm256_xor_si256(c2[291],_mm256_xor_si256(c2[4973],_mm256_xor_si256(c2[4793],_mm256_xor_si256(c2[4989],_mm256_xor_si256(c2[4809],_mm256_xor_si256(c2[3552],_mm256_xor_si256(c2[1748],_mm256_xor_si256(c2[671],_mm256_xor_si256(c2[491],_mm256_xor_si256(c2[5546],_mm256_xor_si256(c2[5366],_mm256_xor_si256(c2[4109],_mm256_xor_si256(c2[1408],_mm256_xor_si256(c2[151],_mm256_xor_si256(c2[4468],_mm256_xor_si256(c2[3391],_mm256_xor_si256(c2[3211],_mm256_xor_si256(c2[4486],_mm256_xor_si256(c2[4306],_mm256_xor_si256(c2[3049],_mm256_xor_si256(c2[2144],_mm256_xor_si256(c2[1964],_mm256_xor_si256(c2[707],_mm256_xor_si256(c2[1425],_mm256_xor_si256(c2[348],c2[168]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 35
d2[315]=_mm256_xor_si256(c2[3],_mm256_xor_si256(c2[5582],_mm256_xor_si256(c2[2703],_mm256_xor_si256(c2[4865],_mm256_xor_si256(c2[4161],_mm256_xor_si256(c2[3981],_mm256_xor_si256(c2[1104],_mm256_xor_si256(c2[3624],_mm256_xor_si256(c2[5059],_mm256_xor_si256(c2[3280],_mm256_xor_si256(c2[3100],_mm256_xor_si256(c2[3822],_mm256_xor_si256(c2[58],_mm256_xor_si256(c2[5637],_mm256_xor_si256(c2[4739],_mm256_xor_si256(c2[4379],_mm256_xor_si256(c2[798],_mm256_xor_si256(c2[1878],_mm256_xor_si256(c2[3315],_mm256_xor_si256(c2[5494],_mm256_xor_si256(c2[93],_mm256_xor_si256(c2[1714],_mm256_xor_si256(c2[2994],_mm256_xor_si256(c2[2814],_mm256_xor_si256(c2[2993],_mm256_xor_si256(c2[1013],_mm256_xor_si256(c2[5531],_mm256_xor_si256(c2[2470],_mm256_xor_si256(c2[329],_mm256_xor_si256(c2[2130],_mm256_xor_si256(c2[5190],_mm256_xor_si256(c2[5208],_mm256_xor_si256(c2[5028],_mm256_xor_si256(c2[2686],c2[2147]))))))))))))))))))))))))))))))))));
//row: 36
d2[324]=_mm256_xor_si256(c2[4503],_mm256_xor_si256(c2[220],c2[4806]));
//row: 37
d2[333]=_mm256_xor_si256(c2[543],_mm256_xor_si256(c2[4681],_mm256_xor_si256(c2[3423],_mm256_xor_si256(c2[1802],_mm256_xor_si256(c2[5585],_mm256_xor_si256(c2[3964],_mm256_xor_si256(c2[4701],_mm256_xor_si256(c2[3080],_mm256_xor_si256(c2[1824],_mm256_xor_si256(c2[203],_mm256_xor_si256(c2[4344],_mm256_xor_si256(c2[2903],_mm256_xor_si256(c2[2723],_mm256_xor_si256(c2[3820],_mm256_xor_si256(c2[2199],_mm256_xor_si256(c2[4542],_mm256_xor_si256(c2[3101],_mm256_xor_si256(c2[2921],_mm256_xor_si256(c2[598],_mm256_xor_si256(c2[4736],_mm256_xor_si256(c2[5459],_mm256_xor_si256(c2[3838],_mm256_xor_si256(c2[5099],_mm256_xor_si256(c2[3478],_mm256_xor_si256(c2[1518],_mm256_xor_si256(c2[5656],_mm256_xor_si256(c2[2598],_mm256_xor_si256(c2[977],_mm256_xor_si256(c2[4035],_mm256_xor_si256(c2[2594],_mm256_xor_si256(c2[2414],_mm256_xor_si256(c2[455],_mm256_xor_si256(c2[4593],_mm256_xor_si256(c2[813],_mm256_xor_si256(c2[5131],_mm256_xor_si256(c2[4951],_mm256_xor_si256(c2[3534],_mm256_xor_si256(c2[1913],_mm256_xor_si256(c2[3713],_mm256_xor_si256(c2[2092],_mm256_xor_si256(c2[1733],_mm256_xor_si256(c2[292],_mm256_xor_si256(c2[112],_mm256_xor_si256(c2[492],_mm256_xor_si256(c2[4630],_mm256_xor_si256(c2[3190],_mm256_xor_si256(c2[1749],_mm256_xor_si256(c2[1569],_mm256_xor_si256(c2[1049],_mm256_xor_si256(c2[5187],_mm256_xor_si256(c2[2850],_mm256_xor_si256(c2[1229],_mm256_xor_si256(c2[151],_mm256_xor_si256(c2[4469],_mm256_xor_si256(c2[4289],_mm256_xor_si256(c2[5748],_mm256_xor_si256(c2[4127],_mm256_xor_si256(c2[3406],_mm256_xor_si256(c2[1785],_mm256_xor_si256(c2[2867],_mm256_xor_si256(c2[1426],c2[1246])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 38
d2[342]=_mm256_xor_si256(c2[720],_mm256_xor_si256(c2[540],_mm256_xor_si256(c2[3420],_mm256_xor_si256(c2[5582],_mm256_xor_si256(c2[4878],_mm256_xor_si256(c2[4698],_mm256_xor_si256(c2[1821],_mm256_xor_si256(c2[4341],_mm256_xor_si256(c2[198],_mm256_xor_si256(c2[3997],_mm256_xor_si256(c2[3817],_mm256_xor_si256(c2[4539],_mm256_xor_si256(c2[775],_mm256_xor_si256(c2[595],_mm256_xor_si256(c2[5456],_mm256_xor_si256(c2[5096],_mm256_xor_si256(c2[1515],_mm256_xor_si256(c2[2595],_mm256_xor_si256(c2[4032],_mm256_xor_si256(c2[452],_mm256_xor_si256(c2[810],_mm256_xor_si256(c2[1172],_mm256_xor_si256(c2[3711],_mm256_xor_si256(c2[3531],_mm256_xor_si256(c2[3710],_mm256_xor_si256(c2[1730],_mm256_xor_si256(c2[489],_mm256_xor_si256(c2[3187],_mm256_xor_si256(c2[1046],_mm256_xor_si256(c2[2847],_mm256_xor_si256(c2[148],_mm256_xor_si256(c2[166],_mm256_xor_si256(c2[5745],_mm256_xor_si256(c2[3403],c2[2864]))))))))))))))))))))))))))))))))));
//row: 39
d2[351]=_mm256_xor_si256(c2[3064],_mm256_xor_si256(c2[2884],_mm256_xor_si256(c2[185],_mm256_xor_si256(c2[5],_mm256_xor_si256(c2[2167],_mm256_xor_si256(c2[4143],_mm256_xor_si256(c2[1463],_mm256_xor_si256(c2[1283],_mm256_xor_si256(c2[4165],_mm256_xor_si256(c2[926],_mm256_xor_si256(c2[582],_mm256_xor_si256(c2[402],_mm256_xor_si256(c2[1124],_mm256_xor_si256(c2[3119],_mm256_xor_si256(c2[2939],_mm256_xor_si256(c2[2221],_mm256_xor_si256(c2[2041],_mm256_xor_si256(c2[1681],_mm256_xor_si256(c2[4039],_mm256_xor_si256(c2[3859],_mm256_xor_si256(c2[4939],_mm256_xor_si256(c2[617],_mm256_xor_si256(c2[2976],_mm256_xor_si256(c2[2796],_mm256_xor_si256(c2[3154],_mm256_xor_si256(c2[296],_mm256_xor_si256(c2[116],_mm256_xor_si256(c2[475],_mm256_xor_si256(c2[295],_mm256_xor_si256(c2[4074],_mm256_xor_si256(c2[3013],_mm256_xor_si256(c2[2833],_mm256_xor_si256(c2[5531],_mm256_xor_si256(c2[127],_mm256_xor_si256(c2[3570],_mm256_xor_si256(c2[3390],_mm256_xor_si256(c2[5191],_mm256_xor_si256(c2[2492],_mm256_xor_si256(c2[2510],_mm256_xor_si256(c2[2330],_mm256_xor_si256(c2[168],_mm256_xor_si256(c2[5747],c2[5208]))))))))))))))))))))))))))))))))))))))))));
//row: 40
d2[360]=_mm256_xor_si256(c2[1982],_mm256_xor_si256(c2[1443],_mm256_xor_si256(c2[4862],_mm256_xor_si256(c2[4323],_mm256_xor_si256(c2[1265],_mm256_xor_si256(c2[726],_mm256_xor_si256(c2[381],_mm256_xor_si256(c2[5601],_mm256_xor_si256(c2[3263],_mm256_xor_si256(c2[2724],_mm256_xor_si256(c2[24],_mm256_xor_si256(c2[5424],_mm256_xor_si256(c2[5244],_mm256_xor_si256(c2[5259],_mm256_xor_si256(c2[4720],_mm256_xor_si256(c2[222],_mm256_xor_si256(c2[5622],_mm256_xor_si256(c2[5442],_mm256_xor_si256(c2[1116],_mm256_xor_si256(c2[2037],_mm256_xor_si256(c2[1498],_mm256_xor_si256(c2[1139],_mm256_xor_si256(c2[600],_mm256_xor_si256(c2[779],_mm256_xor_si256(c2[240],_mm256_xor_si256(c2[2957],_mm256_xor_si256(c2[2418],_mm256_xor_si256(c2[4037],_mm256_xor_si256(c2[3498],_mm256_xor_si256(c2[5474],_mm256_xor_si256(c2[5115],_mm256_xor_si256(c2[4935],_mm256_xor_si256(c2[1894],_mm256_xor_si256(c2[1355],_mm256_xor_si256(c2[2252],_mm256_xor_si256(c2[1893],_mm256_xor_si256(c2[1713],_mm256_xor_si256(c2[4973],_mm256_xor_si256(c2[4434],_mm256_xor_si256(c2[5152],_mm256_xor_si256(c2[4613],_mm256_xor_si256(c2[3172],_mm256_xor_si256(c2[2813],_mm256_xor_si256(c2[2633],_mm256_xor_si256(c2[1931],_mm256_xor_si256(c2[1392],_mm256_xor_si256(c2[4629],_mm256_xor_si256(c2[4270],_mm256_xor_si256(c2[4090],_mm256_xor_si256(c2[2488],_mm256_xor_si256(c2[1949],_mm256_xor_si256(c2[4289],_mm256_xor_si256(c2[3750],_mm256_xor_si256(c2[1590],_mm256_xor_si256(c2[1231],_mm256_xor_si256(c2[1051],_mm256_xor_si256(c2[1428],_mm256_xor_si256(c2[889],_mm256_xor_si256(c2[4845],_mm256_xor_si256(c2[4306],_mm256_xor_si256(c2[4306],_mm256_xor_si256(c2[3947],c2[3767]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 41
d2[369]=_mm256_xor_si256(c2[3960],_mm256_xor_si256(c2[3780],_mm256_xor_si256(c2[901],_mm256_xor_si256(c2[3063],_mm256_xor_si256(c2[2359],_mm256_xor_si256(c2[2179],_mm256_xor_si256(c2[5061],_mm256_xor_si256(c2[1822],_mm256_xor_si256(c2[2899],_mm256_xor_si256(c2[1478],_mm256_xor_si256(c2[1298],_mm256_xor_si256(c2[2020],_mm256_xor_si256(c2[4015],_mm256_xor_si256(c2[3835],_mm256_xor_si256(c2[2937],_mm256_xor_si256(c2[2577],_mm256_xor_si256(c2[4755],_mm256_xor_si256(c2[76],_mm256_xor_si256(c2[1513],_mm256_xor_si256(c2[3692],_mm256_xor_si256(c2[4050],_mm256_xor_si256(c2[2791],_mm256_xor_si256(c2[1192],_mm256_xor_si256(c2[1012],_mm256_xor_si256(c2[1191],_mm256_xor_si256(c2[4970],_mm256_xor_si256(c2[3729],_mm256_xor_si256(c2[668],_mm256_xor_si256(c2[4286],_mm256_xor_si256(c2[328],_mm256_xor_si256(c2[3388],_mm256_xor_si256(c2[3406],_mm256_xor_si256(c2[3226],_mm256_xor_si256(c2[884],c2[345]))))))))))))))))))))))))))))))))));
}
}