Files
Raymond Knopp a7bc282302 First-level of support for new aarch64 machines
Testing on Neoverse N1 (Ampere 3GHz). Tested only on a subset of phy-simulators.

- Changes:
- use SIMDE consistently
- adaptations of LDPC decoder generator for ARMv8 performance
- SIMDe modifications of Intel CRC to allow for aarch64 build.
  optimizations for 128-bit to improve performance of LDPC encode/decode
  on aarch64 (Neoverse 1)
- added BG2 files for 128-bit ldpc encoder (aarch64)
- testing on Xeon
- testing on x86
- minor changes to build/run on x86
- change in crc.h after returning to aarch64
- removed some warning in ldpc decoder generator for x86_64
- char
- Delete irrelevant constants
- Correctly declare variables
- Define stdbool for all architectures
- Remove definition of _MM_SHUFFLE and use SIMDE_MM_SHUFFLE
- Remove commented code
- Fix CMakeLists.txt
- Include SIMDE avx2 functions in tools_defs.h
2023-09-13 17:19:20 +02:00

142 lines
46 KiB
C

#ifdef __AVX2__
#include "PHY/sse_intrin.h"
// generated code for Zc=96, byte encoding
static inline __attribute__ ((no_sanitize("address", "undefined"))) void ldpc_BG2_Zc96_byte(uint8_t *c,uint8_t *d) {
simde__m256i *csimd=(simde__m256i *)c,*dsimd=(simde__m256i *)d;
simde__m256i *c2,*d2;
int i2;
for (i2=0; i2<3; i2++) {
c2=&csimd[i2];
d2=&dsimd[i2];
//row: 0
d2[0]=simde_mm256_xor_si256(c2[782],simde_mm256_xor_si256(c2[1560],simde_mm256_xor_si256(c2[1440],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[1026],simde_mm256_xor_si256(c2[427],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[854],simde_mm256_xor_si256(c2[80],simde_mm256_xor_si256(c2[199],simde_mm256_xor_si256(c2[1218],simde_mm256_xor_si256(c2[925],simde_mm256_xor_si256(c2[804],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[1652],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[398],simde_mm256_xor_si256(c2[1836],simde_mm256_xor_si256(c2[1596],simde_mm256_xor_si256(c2[1604],simde_mm256_xor_si256(c2[1302],simde_mm256_xor_si256(c2[1490],simde_mm256_xor_si256(c2[1068],simde_mm256_xor_si256(c2[1668],simde_mm256_xor_si256(c2[716],simde_mm256_xor_si256(c2[174],c2[1556]))))))))))))))))))))))))));
//row: 1
d2[3]=simde_mm256_xor_si256(c2[842],simde_mm256_xor_si256(c2[782],simde_mm256_xor_si256(c2[1560],simde_mm256_xor_si256(c2[1440],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[1026],simde_mm256_xor_si256(c2[427],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[854],simde_mm256_xor_si256(c2[140],simde_mm256_xor_si256(c2[80],simde_mm256_xor_si256(c2[199],simde_mm256_xor_si256(c2[1218],simde_mm256_xor_si256(c2[925],simde_mm256_xor_si256(c2[804],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[1652],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[458],simde_mm256_xor_si256(c2[398],simde_mm256_xor_si256(c2[1836],simde_mm256_xor_si256(c2[1596],simde_mm256_xor_si256(c2[1604],simde_mm256_xor_si256(c2[1302],simde_mm256_xor_si256(c2[1490],simde_mm256_xor_si256(c2[1068],simde_mm256_xor_si256(c2[1668],simde_mm256_xor_si256(c2[776],simde_mm256_xor_si256(c2[716],simde_mm256_xor_si256(c2[174],c2[1556]))))))))))))))))))))))))))))))));
//row: 2
d2[6]=simde_mm256_xor_si256(c2[842],simde_mm256_xor_si256(c2[782],simde_mm256_xor_si256(c2[1620],simde_mm256_xor_si256(c2[1560],simde_mm256_xor_si256(c2[1440],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[1026],simde_mm256_xor_si256(c2[427],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[854],simde_mm256_xor_si256(c2[140],simde_mm256_xor_si256(c2[80],simde_mm256_xor_si256(c2[259],simde_mm256_xor_si256(c2[199],simde_mm256_xor_si256(c2[1218],simde_mm256_xor_si256(c2[985],simde_mm256_xor_si256(c2[925],simde_mm256_xor_si256(c2[804],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[1712],simde_mm256_xor_si256(c2[1652],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[458],simde_mm256_xor_si256(c2[398],simde_mm256_xor_si256(c2[1896],simde_mm256_xor_si256(c2[1836],simde_mm256_xor_si256(c2[1596],simde_mm256_xor_si256(c2[1664],simde_mm256_xor_si256(c2[1604],simde_mm256_xor_si256(c2[1302],simde_mm256_xor_si256(c2[1550],simde_mm256_xor_si256(c2[1490],simde_mm256_xor_si256(c2[1068],simde_mm256_xor_si256(c2[1668],simde_mm256_xor_si256(c2[776],simde_mm256_xor_si256(c2[716],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[174],c2[1556]))))))))))))))))))))))))))))))))))))))));
//row: 3
d2[9]=simde_mm256_xor_si256(c2[782],simde_mm256_xor_si256(c2[1560],simde_mm256_xor_si256(c2[1440],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[1026],simde_mm256_xor_si256(c2[487],simde_mm256_xor_si256(c2[427],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[914],simde_mm256_xor_si256(c2[854],simde_mm256_xor_si256(c2[80],simde_mm256_xor_si256(c2[199],simde_mm256_xor_si256(c2[1218],simde_mm256_xor_si256(c2[925],simde_mm256_xor_si256(c2[804],simde_mm256_xor_si256(c2[1044],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[1652],simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[398],simde_mm256_xor_si256(c2[1836],simde_mm256_xor_si256(c2[1656],simde_mm256_xor_si256(c2[1596],simde_mm256_xor_si256(c2[1604],simde_mm256_xor_si256(c2[1362],simde_mm256_xor_si256(c2[1302],simde_mm256_xor_si256(c2[1490],simde_mm256_xor_si256(c2[1068],simde_mm256_xor_si256(c2[1728],simde_mm256_xor_si256(c2[1668],simde_mm256_xor_si256(c2[716],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[1616],c2[1556]))))))))))))))))))))))))))))))))));
//row: 4
d2[12]=simde_mm256_xor_si256(c2[660],simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[1381],simde_mm256_xor_si256(c2[1261],simde_mm256_xor_si256(c2[482],simde_mm256_xor_si256(c2[1806],simde_mm256_xor_si256(c2[1746],simde_mm256_xor_si256(c2[847],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[672],simde_mm256_xor_si256(c2[1880],simde_mm256_xor_si256(c2[1820],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[1039],simde_mm256_xor_si256(c2[746],simde_mm256_xor_si256(c2[625],simde_mm256_xor_si256(c2[805],simde_mm256_xor_si256(c2[1470],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[1657],simde_mm256_xor_si256(c2[1417],simde_mm256_xor_si256(c2[1422],simde_mm256_xor_si256(c2[1123],simde_mm256_xor_si256(c2[1308],simde_mm256_xor_si256(c2[889],simde_mm256_xor_si256(c2[1489],simde_mm256_xor_si256(c2[594],simde_mm256_xor_si256(c2[534],simde_mm256_xor_si256(c2[1914],c2[1374]))))))))))))))))))))))))))))))))));
//row: 5
d2[15]=simde_mm256_xor_si256(c2[1800],simde_mm256_xor_si256(c2[1740],simde_mm256_xor_si256(c2[602],simde_mm256_xor_si256(c2[482],simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[1027],simde_mm256_xor_si256(c2[967],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[1388],simde_mm256_xor_si256(c2[727],simde_mm256_xor_si256(c2[1332],simde_mm256_xor_si256(c2[1272],simde_mm256_xor_si256(c2[1812],simde_mm256_xor_si256(c2[1098],simde_mm256_xor_si256(c2[1038],simde_mm256_xor_si256(c2[1160],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[1886],simde_mm256_xor_si256(c2[1765],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[691],simde_mm256_xor_si256(c2[1410],simde_mm256_xor_si256(c2[1530],simde_mm256_xor_si256(c2[1416],simde_mm256_xor_si256(c2[1356],simde_mm256_xor_si256(c2[878],simde_mm256_xor_si256(c2[638],simde_mm256_xor_si256(c2[643],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[1004],simde_mm256_xor_si256(c2[529],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[710],simde_mm256_xor_si256(c2[1734],simde_mm256_xor_si256(c2[1674],simde_mm256_xor_si256(c2[1135],c2[595]))))))))))))))))))))))))))))))))))));
//row: 6
d2[18]=simde_mm256_xor_si256(c2[362],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[1080],simde_mm256_xor_si256(c2[960],simde_mm256_xor_si256(c2[61],simde_mm256_xor_si256(c2[1508],simde_mm256_xor_si256(c2[1448],simde_mm256_xor_si256(c2[546],simde_mm256_xor_si256(c2[1866],simde_mm256_xor_si256(c2[1813],simde_mm256_xor_si256(c2[1753],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[1579],simde_mm256_xor_si256(c2[1519],simde_mm256_xor_si256(c2[1638],simde_mm256_xor_si256(c2[738],simde_mm256_xor_si256(c2[445],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[504],simde_mm256_xor_si256(c2[1172],simde_mm256_xor_si256(c2[1891],simde_mm256_xor_si256(c2[1712],simde_mm256_xor_si256(c2[1897],simde_mm256_xor_si256(c2[1837],simde_mm256_xor_si256(c2[1356],simde_mm256_xor_si256(c2[1116],simde_mm256_xor_si256(c2[1124],simde_mm256_xor_si256(c2[822],simde_mm256_xor_si256(c2[282],simde_mm256_xor_si256(c2[1010],simde_mm256_xor_si256(c2[588],simde_mm256_xor_si256(c2[1188],simde_mm256_xor_si256(c2[296],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[1616],simde_mm256_xor_si256(c2[1076],c2[1075]))))))))))))))))))))))))))))))))))));
//row: 7
d2[21]=simde_mm256_xor_si256(c2[1202],simde_mm256_xor_si256(c2[1142],simde_mm256_xor_si256(c2[1680],simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[542],simde_mm256_xor_si256(c2[1800],simde_mm256_xor_si256(c2[422],simde_mm256_xor_si256(c2[426],simde_mm256_xor_si256(c2[366],simde_mm256_xor_si256(c2[907],simde_mm256_xor_si256(c2[1386],simde_mm256_xor_si256(c2[8],simde_mm256_xor_si256(c2[787],simde_mm256_xor_si256(c2[1388],simde_mm256_xor_si256(c2[1328],simde_mm256_xor_si256(c2[968],simde_mm256_xor_si256(c2[734],simde_mm256_xor_si256(c2[674],simde_mm256_xor_si256(c2[1212],simde_mm256_xor_si256(c2[1214],simde_mm256_xor_si256(c2[1812],simde_mm256_xor_si256(c2[1752],simde_mm256_xor_si256(c2[500],simde_mm256_xor_si256(c2[440],simde_mm256_xor_si256(c2[978],simde_mm256_xor_si256(c2[559],simde_mm256_xor_si256(c2[1100],simde_mm256_xor_si256(c2[1578],simde_mm256_xor_si256(c2[200],simde_mm256_xor_si256(c2[1285],simde_mm256_xor_si256(c2[1826],simde_mm256_xor_si256(c2[1164],simde_mm256_xor_si256(c2[1705],simde_mm256_xor_si256(c2[1344],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[1885],simde_mm256_xor_si256(c2[90],simde_mm256_xor_si256(c2[631],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[1410],simde_mm256_xor_si256(c2[1350],simde_mm256_xor_si256(c2[1592],simde_mm256_xor_si256(c2[818],simde_mm256_xor_si256(c2[758],simde_mm256_xor_si256(c2[1296],simde_mm256_xor_si256(c2[277],simde_mm256_xor_si256(c2[818],simde_mm256_xor_si256(c2[37],simde_mm256_xor_si256(c2[638],simde_mm256_xor_si256(c2[578],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[583],simde_mm256_xor_si256(c2[1662],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[284],simde_mm256_xor_si256(c2[1002],simde_mm256_xor_si256(c2[1850],simde_mm256_xor_si256(c2[469],simde_mm256_xor_si256(c2[1428],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[109],simde_mm256_xor_si256(c2[710],simde_mm256_xor_si256(c2[650],simde_mm256_xor_si256(c2[1136],simde_mm256_xor_si256(c2[1076],simde_mm256_xor_si256(c2[1614],simde_mm256_xor_si256(c2[534],simde_mm256_xor_si256(c2[1075],simde_mm256_xor_si256(c2[1916],simde_mm256_xor_si256(c2[595],c2[535]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 8
d2[24]=simde_mm256_xor_si256(c2[361],simde_mm256_xor_si256(c2[301],simde_mm256_xor_si256(c2[1142],simde_mm256_xor_si256(c2[1082],simde_mm256_xor_si256(c2[962],simde_mm256_xor_si256(c2[1320],simde_mm256_xor_si256(c2[1507],simde_mm256_xor_si256(c2[1447],simde_mm256_xor_si256(c2[548],simde_mm256_xor_si256(c2[1868],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[1812],simde_mm256_xor_si256(c2[1752],simde_mm256_xor_si256(c2[373],simde_mm256_xor_si256(c2[1578],simde_mm256_xor_si256(c2[1518],simde_mm256_xor_si256(c2[1700],simde_mm256_xor_si256(c2[1640],simde_mm256_xor_si256(c2[740],simde_mm256_xor_si256(c2[504],simde_mm256_xor_si256(c2[444],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[506],simde_mm256_xor_si256(c2[1231],simde_mm256_xor_si256(c2[1171],simde_mm256_xor_si256(c2[1890],simde_mm256_xor_si256(c2[1896],simde_mm256_xor_si256(c2[1836],simde_mm256_xor_si256(c2[1418],simde_mm256_xor_si256(c2[1358],simde_mm256_xor_si256(c2[1118],simde_mm256_xor_si256(c2[1183],simde_mm256_xor_si256(c2[1123],simde_mm256_xor_si256(c2[824],simde_mm256_xor_si256(c2[1069],simde_mm256_xor_si256(c2[1009],simde_mm256_xor_si256(c2[590],simde_mm256_xor_si256(c2[1190],simde_mm256_xor_si256(c2[295],simde_mm256_xor_si256(c2[235],simde_mm256_xor_si256(c2[1675],simde_mm256_xor_si256(c2[1615],c2[1075]))))))))))))))))))))))))))))))))))))))))));
//row: 9
d2[27]=simde_mm256_xor_si256(c2[362],simde_mm256_xor_si256(c2[2],simde_mm256_xor_si256(c2[1861],simde_mm256_xor_si256(c2[1140],simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[1020],simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[1508],simde_mm256_xor_si256(c2[1148],simde_mm256_xor_si256(c2[1088],simde_mm256_xor_si256(c2[606],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[7],simde_mm256_xor_si256(c2[1506],simde_mm256_xor_si256(c2[1686],simde_mm256_xor_si256(c2[1813],simde_mm256_xor_si256(c2[1453],simde_mm256_xor_si256(c2[1393],simde_mm256_xor_si256(c2[434],simde_mm256_xor_si256(c2[14],simde_mm256_xor_si256(c2[1579],simde_mm256_xor_si256(c2[1219],simde_mm256_xor_si256(c2[1159],simde_mm256_xor_si256(c2[1698],simde_mm256_xor_si256(c2[1278],simde_mm256_xor_si256(c2[798],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[505],simde_mm256_xor_si256(c2[85],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[1886],simde_mm256_xor_si256(c2[564],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[1232],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[1531],simde_mm256_xor_si256(c2[1897],simde_mm256_xor_si256(c2[1537],simde_mm256_xor_si256(c2[1477],simde_mm256_xor_si256(c2[1416],simde_mm256_xor_si256(c2[996],simde_mm256_xor_si256(c2[1176],simde_mm256_xor_si256(c2[756],simde_mm256_xor_si256(c2[1184],simde_mm256_xor_si256(c2[764],simde_mm256_xor_si256(c2[882],simde_mm256_xor_si256(c2[462],simde_mm256_xor_si256(c2[1070],simde_mm256_xor_si256(c2[650],simde_mm256_xor_si256(c2[648],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[1248],simde_mm256_xor_si256(c2[828],simde_mm256_xor_si256(c2[289],simde_mm256_xor_si256(c2[296],simde_mm256_xor_si256(c2[1855],simde_mm256_xor_si256(c2[1795],simde_mm256_xor_si256(c2[1676],simde_mm256_xor_si256(c2[1256],simde_mm256_xor_si256(c2[1136],c2[716])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 10
d2[30]=simde_mm256_xor_si256(c2[1621],simde_mm256_xor_si256(c2[486],simde_mm256_xor_si256(c2[1356],c2[1243])));
//row: 11
d2[33]=simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[1202],simde_mm256_xor_si256(c2[1082],simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[1567],simde_mm256_xor_si256(c2[668],simde_mm256_xor_si256(c2[126],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[1872],simde_mm256_xor_si256(c2[553],simde_mm256_xor_si256(c2[493],simde_mm256_xor_si256(c2[1638],simde_mm256_xor_si256(c2[1760],simde_mm256_xor_si256(c2[860],simde_mm256_xor_si256(c2[564],simde_mm256_xor_si256(c2[446],simde_mm256_xor_si256(c2[686],simde_mm256_xor_si256(c2[626],simde_mm256_xor_si256(c2[1291],simde_mm256_xor_si256(c2[151],simde_mm256_xor_si256(c2[91],simde_mm256_xor_si256(c2[37],simde_mm256_xor_si256(c2[1478],simde_mm256_xor_si256(c2[1298],simde_mm256_xor_si256(c2[1238],simde_mm256_xor_si256(c2[1243],simde_mm256_xor_si256(c2[1004],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[1724],simde_mm256_xor_si256(c2[1129],simde_mm256_xor_si256(c2[710],simde_mm256_xor_si256(c2[1370],simde_mm256_xor_si256(c2[1310],simde_mm256_xor_si256(c2[355],simde_mm256_xor_si256(c2[1735],simde_mm256_xor_si256(c2[1255],simde_mm256_xor_si256(c2[1195],c2[896])))))))))))))))))))))))))))))))))))));
//row: 12
d2[36]=simde_mm256_xor_si256(c2[1502],simde_mm256_xor_si256(c2[1442],simde_mm256_xor_si256(c2[301],simde_mm256_xor_si256(c2[181],simde_mm256_xor_si256(c2[726],simde_mm256_xor_si256(c2[666],simde_mm256_xor_si256(c2[1686],simde_mm256_xor_si256(c2[1087],simde_mm256_xor_si256(c2[427],simde_mm256_xor_si256(c2[1034],simde_mm256_xor_si256(c2[974],simde_mm256_xor_si256(c2[1514],simde_mm256_xor_si256(c2[800],simde_mm256_xor_si256(c2[740],simde_mm256_xor_si256(c2[859],simde_mm256_xor_si256(c2[1878],simde_mm256_xor_si256(c2[1760],simde_mm256_xor_si256(c2[1585],simde_mm256_xor_si256(c2[1464],simde_mm256_xor_si256(c2[1644],simde_mm256_xor_si256(c2[390],simde_mm256_xor_si256(c2[1112],simde_mm256_xor_si256(c2[1118],simde_mm256_xor_si256(c2[1058],simde_mm256_xor_si256(c2[577],simde_mm256_xor_si256(c2[337],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[43],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[1728],simde_mm256_xor_si256(c2[409],simde_mm256_xor_si256(c2[1436],simde_mm256_xor_si256(c2[1376],simde_mm256_xor_si256(c2[834],c2[294]))))))))))))))))))))))))))))))))));
//row: 13
d2[39]=simde_mm256_xor_si256(c2[1141],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[1802],simde_mm256_xor_si256(c2[1021],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[1388],simde_mm256_xor_si256(c2[846],simde_mm256_xor_si256(c2[786],simde_mm256_xor_si256(c2[1746],simde_mm256_xor_si256(c2[673],simde_mm256_xor_si256(c2[1273],simde_mm256_xor_si256(c2[1213],simde_mm256_xor_si256(c2[439],simde_mm256_xor_si256(c2[558],simde_mm256_xor_si256(c2[1580],simde_mm256_xor_si256(c2[1284],simde_mm256_xor_si256(c2[1166],simde_mm256_xor_si256(c2[1406],simde_mm256_xor_si256(c2[1346],simde_mm256_xor_si256(c2[92],simde_mm256_xor_si256(c2[871],simde_mm256_xor_si256(c2[811],simde_mm256_xor_si256(c2[757],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[1724],simde_mm256_xor_si256(c2[1664],simde_mm256_xor_si256(c2[1849],simde_mm256_xor_si256(c2[1430],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[229],simde_mm256_xor_si256(c2[1075],simde_mm256_xor_si256(c2[536],simde_mm256_xor_si256(c2[56],c2[1915])))))))))))))))))))))))))))))))))))));
//row: 14
d2[42]=simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[961],simde_mm256_xor_si256(c2[901],simde_mm256_xor_si256(c2[1742],simde_mm256_xor_si256(c2[781],simde_mm256_xor_si256(c2[1622],simde_mm256_xor_si256(c2[1326],simde_mm256_xor_si256(c2[1266],simde_mm256_xor_si256(c2[188],simde_mm256_xor_si256(c2[367],simde_mm256_xor_si256(c2[1208],simde_mm256_xor_si256(c2[1687],simde_mm256_xor_si256(c2[666],simde_mm256_xor_si256(c2[606],simde_mm256_xor_si256(c2[1146],simde_mm256_xor_si256(c2[1634],simde_mm256_xor_si256(c2[1574],simde_mm256_xor_si256(c2[493],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[1093],simde_mm256_xor_si256(c2[1033],simde_mm256_xor_si256(c2[1400],simde_mm256_xor_si256(c2[1340],simde_mm256_xor_si256(c2[259],simde_mm256_xor_si256(c2[1459],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[559],simde_mm256_xor_si256(c2[1400],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[1104],simde_mm256_xor_si256(c2[145],simde_mm256_xor_si256(c2[986],simde_mm256_xor_si256(c2[325],simde_mm256_xor_si256(c2[1226],simde_mm256_xor_si256(c2[1166],simde_mm256_xor_si256(c2[990],simde_mm256_xor_si256(c2[1831],simde_mm256_xor_si256(c2[1712],simde_mm256_xor_si256(c2[691],simde_mm256_xor_si256(c2[631],simde_mm256_xor_si256(c2[1718],simde_mm256_xor_si256(c2[1658],simde_mm256_xor_si256(c2[577],simde_mm256_xor_si256(c2[1177],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[937],simde_mm256_xor_si256(c2[1838],simde_mm256_xor_si256(c2[1778],simde_mm256_xor_si256(c2[1356],simde_mm256_xor_si256(c2[942],simde_mm256_xor_si256(c2[1783],simde_mm256_xor_si256(c2[643],simde_mm256_xor_si256(c2[1544],simde_mm256_xor_si256(c2[1484],simde_mm256_xor_si256(c2[828],simde_mm256_xor_si256(c2[1669],simde_mm256_xor_si256(c2[409],simde_mm256_xor_si256(c2[1250],simde_mm256_xor_si256(c2[1009],simde_mm256_xor_si256(c2[1910],simde_mm256_xor_si256(c2[1850],simde_mm256_xor_si256(c2[114],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[895],simde_mm256_xor_si256(c2[1434],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[894],simde_mm256_xor_si256(c2[1795],c2[1735])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 15
d2[45]=simde_mm256_xor_si256(c2[721],simde_mm256_xor_si256(c2[1861],simde_mm256_xor_si256(c2[1801],simde_mm256_xor_si256(c2[1502],simde_mm256_xor_si256(c2[660],simde_mm256_xor_si256(c2[1382],simde_mm256_xor_si256(c2[540],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[1867],simde_mm256_xor_si256(c2[1088],simde_mm256_xor_si256(c2[1028],simde_mm256_xor_si256(c2[968],simde_mm256_xor_si256(c2[126],simde_mm256_xor_si256(c2[366],simde_mm256_xor_si256(c2[1446],simde_mm256_xor_si256(c2[253],simde_mm256_xor_si256(c2[1393],simde_mm256_xor_si256(c2[1333],simde_mm256_xor_si256(c2[793],simde_mm256_xor_si256(c2[1873],simde_mm256_xor_si256(c2[19],simde_mm256_xor_si256(c2[1159],simde_mm256_xor_si256(c2[1099],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[1218],simde_mm256_xor_si256(c2[1160],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[864],simde_mm256_xor_si256(c2[25],simde_mm256_xor_si256(c2[746],simde_mm256_xor_si256(c2[1826],simde_mm256_xor_si256(c2[926],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[1591],simde_mm256_xor_si256(c2[752],simde_mm256_xor_si256(c2[391],simde_mm256_xor_si256(c2[1471],simde_mm256_xor_si256(c2[337],simde_mm256_xor_si256(c2[1477],simde_mm256_xor_si256(c2[1417],simde_mm256_xor_si256(c2[1778],simde_mm256_xor_si256(c2[936],simde_mm256_xor_si256(c2[1538],simde_mm256_xor_si256(c2[696],simde_mm256_xor_si256(c2[1543],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[1244],simde_mm256_xor_si256(c2[402],simde_mm256_xor_si256(c2[1429],simde_mm256_xor_si256(c2[590],simde_mm256_xor_si256(c2[1010],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[1610],simde_mm256_xor_si256(c2[768],simde_mm256_xor_si256(c2[655],simde_mm256_xor_si256(c2[1795],simde_mm256_xor_si256(c2[1735],simde_mm256_xor_si256(c2[116],simde_mm256_xor_si256(c2[1196],simde_mm256_xor_si256(c2[1495],c2[656]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 16
d2[48]=simde_mm256_xor_si256(c2[1260],simde_mm256_xor_si256(c2[1200],simde_mm256_xor_si256(c2[841],simde_mm256_xor_si256(c2[781],simde_mm256_xor_si256(c2[62],simde_mm256_xor_si256(c2[1622],simde_mm256_xor_si256(c2[1562],simde_mm256_xor_si256(c2[1861],simde_mm256_xor_si256(c2[1442],simde_mm256_xor_si256(c2[487],simde_mm256_xor_si256(c2[427],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[8],simde_mm256_xor_si256(c2[1447],simde_mm256_xor_si256(c2[1028],simde_mm256_xor_si256(c2[848],simde_mm256_xor_si256(c2[426],simde_mm256_xor_si256(c2[1388],simde_mm256_xor_si256(c2[792],simde_mm256_xor_si256(c2[732],simde_mm256_xor_si256(c2[373],simde_mm256_xor_si256(c2[313],simde_mm256_xor_si256(c2[1272],simde_mm256_xor_si256(c2[853],simde_mm256_xor_si256(c2[558],simde_mm256_xor_si256(c2[498],simde_mm256_xor_si256(c2[139],simde_mm256_xor_si256(c2[79],simde_mm256_xor_si256(c2[620],simde_mm256_xor_si256(c2[258],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[1639],simde_mm256_xor_si256(c2[1220],simde_mm256_xor_si256(c2[1346],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[924],simde_mm256_xor_si256(c2[1225],simde_mm256_xor_si256(c2[806],simde_mm256_xor_si256(c2[1405],simde_mm256_xor_si256(c2[986],simde_mm256_xor_si256(c2[151],simde_mm256_xor_si256(c2[1711],simde_mm256_xor_si256(c2[1651],simde_mm256_xor_si256(c2[870],simde_mm256_xor_si256(c2[451],simde_mm256_xor_si256(c2[876],simde_mm256_xor_si256(c2[816],simde_mm256_xor_si256(c2[457],simde_mm256_xor_si256(c2[397],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[1898],simde_mm256_xor_si256(c2[1838],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[1598],simde_mm256_xor_si256(c2[103],simde_mm256_xor_si256(c2[1663],simde_mm256_xor_si256(c2[1603],simde_mm256_xor_si256(c2[1723],simde_mm256_xor_si256(c2[1304],simde_mm256_xor_si256(c2[1908],simde_mm256_xor_si256(c2[1549],simde_mm256_xor_si256(c2[1489],simde_mm256_xor_si256(c2[1489],simde_mm256_xor_si256(c2[1070],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[1670],simde_mm256_xor_si256(c2[1194],simde_mm256_xor_si256(c2[1134],simde_mm256_xor_si256(c2[775],simde_mm256_xor_si256(c2[715],simde_mm256_xor_si256(c2[595],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[176],simde_mm256_xor_si256(c2[55],simde_mm256_xor_si256(c2[1555],c2[1076])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 17
d2[51]=simde_mm256_xor_si256(c2[1382],simde_mm256_xor_si256(c2[1322],simde_mm256_xor_si256(c2[1202],simde_mm256_xor_si256(c2[1142],simde_mm256_xor_si256(c2[181],simde_mm256_xor_si256(c2[61],simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[61],simde_mm256_xor_si256(c2[1800],simde_mm256_xor_si256(c2[606],simde_mm256_xor_si256(c2[546],simde_mm256_xor_si256(c2[426],simde_mm256_xor_si256(c2[366],simde_mm256_xor_si256(c2[1566],simde_mm256_xor_si256(c2[1386],simde_mm256_xor_si256(c2[967],simde_mm256_xor_si256(c2[787],simde_mm256_xor_si256(c2[1807],simde_mm256_xor_si256(c2[914],simde_mm256_xor_si256(c2[854],simde_mm256_xor_si256(c2[734],simde_mm256_xor_si256(c2[674],simde_mm256_xor_si256(c2[1394],simde_mm256_xor_si256(c2[1214],simde_mm256_xor_si256(c2[680],simde_mm256_xor_si256(c2[620],simde_mm256_xor_si256(c2[500],simde_mm256_xor_si256(c2[440],simde_mm256_xor_si256(c2[739],simde_mm256_xor_si256(c2[619],simde_mm256_xor_si256(c2[559],simde_mm256_xor_si256(c2[1758],simde_mm256_xor_si256(c2[1578],simde_mm256_xor_si256(c2[1465],simde_mm256_xor_si256(c2[1345],simde_mm256_xor_si256(c2[1285],simde_mm256_xor_si256(c2[1344],simde_mm256_xor_si256(c2[1164],simde_mm256_xor_si256(c2[1524],simde_mm256_xor_si256(c2[1344],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[90],simde_mm256_xor_si256(c2[992],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[1410],simde_mm256_xor_si256(c2[998],simde_mm256_xor_si256(c2[938],simde_mm256_xor_si256(c2[818],simde_mm256_xor_si256(c2[758],simde_mm256_xor_si256(c2[457],simde_mm256_xor_si256(c2[337],simde_mm256_xor_si256(c2[277],simde_mm256_xor_si256(c2[217],simde_mm256_xor_si256(c2[37],simde_mm256_xor_si256(c2[222],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[1842],simde_mm256_xor_si256(c2[1662],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[1910],simde_mm256_xor_si256(c2[1850],simde_mm256_xor_si256(c2[1608],simde_mm256_xor_si256(c2[1428],simde_mm256_xor_si256(c2[289],simde_mm256_xor_si256(c2[109],simde_mm256_xor_si256(c2[1316],simde_mm256_xor_si256(c2[1256],simde_mm256_xor_si256(c2[1136],simde_mm256_xor_si256(c2[1076],simde_mm256_xor_si256(c2[714],simde_mm256_xor_si256(c2[594],simde_mm256_xor_si256(c2[534],simde_mm256_xor_si256(c2[174],c2[1916])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 18
d2[54]=simde_mm256_xor_si256(c2[1562],simde_mm256_xor_si256(c2[396],c2[883]));
//row: 19
d2[57]=simde_mm256_xor_si256(c2[541],simde_mm256_xor_si256(c2[1322],simde_mm256_xor_si256(c2[1202],simde_mm256_xor_si256(c2[1561],simde_mm256_xor_si256(c2[1687],simde_mm256_xor_si256(c2[788],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[607],simde_mm256_xor_si256(c2[73],simde_mm256_xor_si256(c2[613],simde_mm256_xor_si256(c2[1758],simde_mm256_xor_si256(c2[1880],simde_mm256_xor_si256(c2[980],simde_mm256_xor_si256(c2[684],simde_mm256_xor_si256(c2[566],simde_mm256_xor_si256(c2[746],simde_mm256_xor_si256(c2[1411],simde_mm256_xor_si256(c2[211],simde_mm256_xor_si256(c2[157],simde_mm256_xor_si256(c2[1598],simde_mm256_xor_si256(c2[1358],simde_mm256_xor_si256(c2[1363],simde_mm256_xor_si256(c2[1064],simde_mm256_xor_si256(c2[1249],simde_mm256_xor_si256(c2[830],simde_mm256_xor_si256(c2[1430],simde_mm256_xor_si256(c2[475],simde_mm256_xor_si256(c2[1855],c2[1315]))))))))))))))))))))))))))));
//row: 20
d2[60]=simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[361],simde_mm256_xor_si256(c2[1142],simde_mm256_xor_si256(c2[1022],simde_mm256_xor_si256(c2[1567],simde_mm256_xor_si256(c2[1507],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[728],simde_mm256_xor_si256(c2[1872],simde_mm256_xor_si256(c2[1812],simde_mm256_xor_si256(c2[433],simde_mm256_xor_si256(c2[1638],simde_mm256_xor_si256(c2[1578],simde_mm256_xor_si256(c2[1700],simde_mm256_xor_si256(c2[800],simde_mm256_xor_si256(c2[504],simde_mm256_xor_si256(c2[386],simde_mm256_xor_si256(c2[566],simde_mm256_xor_si256(c2[1765],simde_mm256_xor_si256(c2[1231],simde_mm256_xor_si256(c2[31],simde_mm256_xor_si256(c2[37],simde_mm256_xor_si256(c2[1896],simde_mm256_xor_si256(c2[1418],simde_mm256_xor_si256(c2[1178],simde_mm256_xor_si256(c2[1183],simde_mm256_xor_si256(c2[884],simde_mm256_xor_si256(c2[1069],simde_mm256_xor_si256(c2[650],simde_mm256_xor_si256(c2[1250],simde_mm256_xor_si256(c2[355],simde_mm256_xor_si256(c2[295],simde_mm256_xor_si256(c2[1675],c2[1135]))))))))))))))))))))))))))))))))));
//row: 21
d2[63]=simde_mm256_xor_si256(c2[961],simde_mm256_xor_si256(c2[1742],simde_mm256_xor_si256(c2[1622],simde_mm256_xor_si256(c2[1741],simde_mm256_xor_si256(c2[188],simde_mm256_xor_si256(c2[1208],simde_mm256_xor_si256(c2[666],simde_mm256_xor_si256(c2[606],simde_mm256_xor_si256(c2[493],simde_mm256_xor_si256(c2[1093],simde_mm256_xor_si256(c2[1033],simde_mm256_xor_si256(c2[259],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[1400],simde_mm256_xor_si256(c2[1104],simde_mm256_xor_si256(c2[986],simde_mm256_xor_si256(c2[1226],simde_mm256_xor_si256(c2[1166],simde_mm256_xor_si256(c2[1831],simde_mm256_xor_si256(c2[691],simde_mm256_xor_si256(c2[631],simde_mm256_xor_si256(c2[577],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[1838],simde_mm256_xor_si256(c2[1778],simde_mm256_xor_si256(c2[1783],simde_mm256_xor_si256(c2[1544],simde_mm256_xor_si256(c2[1484],simde_mm256_xor_si256(c2[1669],simde_mm256_xor_si256(c2[1250],simde_mm256_xor_si256(c2[1910],simde_mm256_xor_si256(c2[1850],simde_mm256_xor_si256(c2[950],simde_mm256_xor_si256(c2[895],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[1795],c2[1735]))))))))))))))))))))))))))))))))))));
//row: 22
d2[66]=simde_mm256_xor_si256(c2[1206],c2[1213]);
//row: 23
d2[69]=simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[1340],c2[1892]));
//row: 24
d2[72]=simde_mm256_xor_si256(c2[1328],simde_mm256_xor_si256(c2[1513],c2[56]));
//row: 25
d2[75]=simde_mm256_xor_si256(c2[781],c2[1290]);
//row: 26
d2[78]=simde_mm256_xor_si256(c2[301],simde_mm256_xor_si256(c2[241],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[1082],simde_mm256_xor_si256(c2[1022],simde_mm256_xor_si256(c2[900],simde_mm256_xor_si256(c2[902],simde_mm256_xor_si256(c2[780],simde_mm256_xor_si256(c2[1447],simde_mm256_xor_si256(c2[1387],simde_mm256_xor_si256(c2[1268],simde_mm256_xor_si256(c2[488],simde_mm256_xor_si256(c2[366],simde_mm256_xor_si256(c2[1808],simde_mm256_xor_si256(c2[1746],simde_mm256_xor_si256(c2[1686],simde_mm256_xor_si256(c2[1752],simde_mm256_xor_si256(c2[1692],simde_mm256_xor_si256(c2[1573],simde_mm256_xor_si256(c2[313],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[1518],simde_mm256_xor_si256(c2[1458],simde_mm256_xor_si256(c2[1339],simde_mm256_xor_si256(c2[1640],simde_mm256_xor_si256(c2[1580],simde_mm256_xor_si256(c2[1458],simde_mm256_xor_si256(c2[680],simde_mm256_xor_si256(c2[558],simde_mm256_xor_si256(c2[444],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[265],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[446],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[1171],simde_mm256_xor_si256(c2[1111],simde_mm256_xor_si256(c2[992],simde_mm256_xor_si256(c2[1830],simde_mm256_xor_si256(c2[1771],simde_mm256_xor_si256(c2[1711],simde_mm256_xor_si256(c2[1836],simde_mm256_xor_si256(c2[1776],simde_mm256_xor_si256(c2[1657],simde_mm256_xor_si256(c2[1358],simde_mm256_xor_si256(c2[1298],simde_mm256_xor_si256(c2[1176],simde_mm256_xor_si256(c2[1058],simde_mm256_xor_si256(c2[996],simde_mm256_xor_si256(c2[936],simde_mm256_xor_si256(c2[1123],simde_mm256_xor_si256(c2[1063],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[764],simde_mm256_xor_si256(c2[702],simde_mm256_xor_si256(c2[642],simde_mm256_xor_si256(c2[583],simde_mm256_xor_si256(c2[1009],simde_mm256_xor_si256(c2[949],simde_mm256_xor_si256(c2[830],simde_mm256_xor_si256(c2[530],simde_mm256_xor_si256(c2[408],simde_mm256_xor_si256(c2[1130],simde_mm256_xor_si256(c2[1068],simde_mm256_xor_si256(c2[1008],simde_mm256_xor_si256(c2[235],simde_mm256_xor_si256(c2[175],simde_mm256_xor_si256(c2[56],simde_mm256_xor_si256(c2[1615],simde_mm256_xor_si256(c2[1555],simde_mm256_xor_si256(c2[1436],simde_mm256_xor_si256(c2[1015],simde_mm256_xor_si256(c2[956],c2[896])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 27
d2[81]=simde_mm256_xor_si256(c2[420],c2[1117]);
//row: 28
d2[84]=simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[912],c2[512]));
//row: 29
d2[87]=simde_mm256_xor_si256(c2[840],c2[1044]);
//row: 30
d2[90]=simde_mm256_xor_si256(c2[1452],simde_mm256_xor_si256(c2[1591],simde_mm256_xor_si256(c2[1243],c2[1495])));
//row: 31
d2[93]=simde_mm256_xor_si256(c2[1381],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[1628],simde_mm256_xor_si256(c2[1086],simde_mm256_xor_si256(c2[1026],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[913],simde_mm256_xor_si256(c2[1513],simde_mm256_xor_si256(c2[1453],simde_mm256_xor_si256(c2[679],simde_mm256_xor_si256(c2[798],simde_mm256_xor_si256(c2[1820],simde_mm256_xor_si256(c2[1524],simde_mm256_xor_si256(c2[1406],simde_mm256_xor_si256(c2[1646],simde_mm256_xor_si256(c2[1586],simde_mm256_xor_si256(c2[332],simde_mm256_xor_si256(c2[1111],simde_mm256_xor_si256(c2[1051],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[516],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[284],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[1904],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[1670],simde_mm256_xor_si256(c2[408],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[1315],simde_mm256_xor_si256(c2[776],simde_mm256_xor_si256(c2[296],c2[236])))))))))))))))))))))))))))))))))));
//row: 32
d2[96]=simde_mm256_xor_si256(c2[1862],simde_mm256_xor_si256(c2[1802],simde_mm256_xor_si256(c2[721],simde_mm256_xor_si256(c2[661],simde_mm256_xor_si256(c2[541],simde_mm256_xor_si256(c2[1202],simde_mm256_xor_si256(c2[1086],simde_mm256_xor_si256(c2[1026],simde_mm256_xor_si256(c2[127],simde_mm256_xor_si256(c2[1447],simde_mm256_xor_si256(c2[1394],simde_mm256_xor_si256(c2[1334],simde_mm256_xor_si256(c2[1874],simde_mm256_xor_si256(c2[1160],simde_mm256_xor_si256(c2[1100],simde_mm256_xor_si256(c2[1279],simde_mm256_xor_si256(c2[1219],simde_mm256_xor_si256(c2[319],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[1824],simde_mm256_xor_si256(c2[85],simde_mm256_xor_si256(c2[810],simde_mm256_xor_si256(c2[750],simde_mm256_xor_si256(c2[1472],simde_mm256_xor_si256(c2[510],simde_mm256_xor_si256(c2[1478],simde_mm256_xor_si256(c2[1418],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[937],simde_mm256_xor_si256(c2[697],simde_mm256_xor_si256(c2[762],simde_mm256_xor_si256(c2[702],simde_mm256_xor_si256(c2[403],simde_mm256_xor_si256(c2[648],simde_mm256_xor_si256(c2[588],simde_mm256_xor_si256(c2[169],simde_mm256_xor_si256(c2[769],simde_mm256_xor_si256(c2[1796],simde_mm256_xor_si256(c2[1736],simde_mm256_xor_si256(c2[1254],simde_mm256_xor_si256(c2[1194],c2[654]))))))))))))))))))))))))))))))))))))))))));
//row: 33
d2[99]=simde_mm256_xor_si256(c2[540],simde_mm256_xor_si256(c2[1321],simde_mm256_xor_si256(c2[1201],simde_mm256_xor_si256(c2[1686],simde_mm256_xor_si256(c2[787],simde_mm256_xor_si256(c2[188],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[612],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[1760],simde_mm256_xor_si256(c2[1879],simde_mm256_xor_si256(c2[979],simde_mm256_xor_si256(c2[686],simde_mm256_xor_si256(c2[565],simde_mm256_xor_si256(c2[745],simde_mm256_xor_si256(c2[1410],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[156],simde_mm256_xor_si256(c2[1597],simde_mm256_xor_si256(c2[1357],simde_mm256_xor_si256(c2[1362],simde_mm256_xor_si256(c2[1063],simde_mm256_xor_si256(c2[1184],simde_mm256_xor_si256(c2[1248],simde_mm256_xor_si256(c2[829],simde_mm256_xor_si256(c2[1429],simde_mm256_xor_si256(c2[474],simde_mm256_xor_si256(c2[1854],c2[1314]))))))))))))))))))))))))))));
//row: 34
d2[102]=simde_mm256_xor_si256(c2[1861],simde_mm256_xor_si256(c2[1801],simde_mm256_xor_si256(c2[1502],simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[660],simde_mm256_xor_si256(c2[361],simde_mm256_xor_si256(c2[540],simde_mm256_xor_si256(c2[241],simde_mm256_xor_si256(c2[782],simde_mm256_xor_si256(c2[1088],simde_mm256_xor_si256(c2[1028],simde_mm256_xor_si256(c2[726],simde_mm256_xor_si256(c2[126],simde_mm256_xor_si256(c2[1746],simde_mm256_xor_si256(c2[1446],simde_mm256_xor_si256(c2[1207],simde_mm256_xor_si256(c2[1147],simde_mm256_xor_si256(c2[1393],simde_mm256_xor_si256(c2[1333],simde_mm256_xor_si256(c2[1034],simde_mm256_xor_si256(c2[1873],simde_mm256_xor_si256(c2[1634],simde_mm256_xor_si256(c2[1574],simde_mm256_xor_si256(c2[1159],simde_mm256_xor_si256(c2[1099],simde_mm256_xor_si256(c2[800],simde_mm256_xor_si256(c2[1278],simde_mm256_xor_si256(c2[1218],simde_mm256_xor_si256(c2[919],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[19],simde_mm256_xor_si256(c2[85],simde_mm256_xor_si256(c2[25],simde_mm256_xor_si256(c2[1645],simde_mm256_xor_si256(c2[1826],simde_mm256_xor_si256(c2[1524],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[1764],simde_mm256_xor_si256(c2[1704],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[752],simde_mm256_xor_si256(c2[450],simde_mm256_xor_si256(c2[1471],simde_mm256_xor_si256(c2[1232],simde_mm256_xor_si256(c2[1172],simde_mm256_xor_si256(c2[1477],simde_mm256_xor_si256(c2[1417],simde_mm256_xor_si256(c2[1118],simde_mm256_xor_si256(c2[996],simde_mm256_xor_si256(c2[936],simde_mm256_xor_si256(c2[637],simde_mm256_xor_si256(c2[696],simde_mm256_xor_si256(c2[457],simde_mm256_xor_si256(c2[397],simde_mm256_xor_si256(c2[764],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[402],simde_mm256_xor_si256(c2[402],simde_mm256_xor_si256(c2[163],simde_mm256_xor_si256(c2[103],simde_mm256_xor_si256(c2[650],simde_mm256_xor_si256(c2[590],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[1788],simde_mm256_xor_si256(c2[768],simde_mm256_xor_si256(c2[529],simde_mm256_xor_si256(c2[469],simde_mm256_xor_si256(c2[1795],simde_mm256_xor_si256(c2[1735],simde_mm256_xor_si256(c2[1436],simde_mm256_xor_si256(c2[1256],simde_mm256_xor_si256(c2[1196],simde_mm256_xor_si256(c2[894],simde_mm256_xor_si256(c2[656],simde_mm256_xor_si256(c2[414],c2[354]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 35
d2[105]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[1862],simde_mm256_xor_si256(c2[721],simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[1146],simde_mm256_xor_si256(c2[1086],simde_mm256_xor_si256(c2[187],simde_mm256_xor_si256(c2[1507],simde_mm256_xor_si256(c2[788],simde_mm256_xor_si256(c2[1454],simde_mm256_xor_si256(c2[1394],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[1220],simde_mm256_xor_si256(c2[1160],simde_mm256_xor_si256(c2[1279],simde_mm256_xor_si256(c2[379],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[1884],simde_mm256_xor_si256(c2[145],simde_mm256_xor_si256(c2[810],simde_mm256_xor_si256(c2[1532],simde_mm256_xor_si256(c2[1472],simde_mm256_xor_si256(c2[1538],simde_mm256_xor_si256(c2[1478],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[757],simde_mm256_xor_si256(c2[762],simde_mm256_xor_si256(c2[463],simde_mm256_xor_si256(c2[648],simde_mm256_xor_si256(c2[229],simde_mm256_xor_si256(c2[829],simde_mm256_xor_si256(c2[1856],simde_mm256_xor_si256(c2[1796],simde_mm256_xor_si256(c2[1254],c2[714]))))))))))))))))))))))))))))))))));
//row: 36
d2[108]=simde_mm256_xor_si256(c2[1500],simde_mm256_xor_si256(c2[1393],c2[644]));
//row: 37
d2[111]=simde_mm256_xor_si256(c2[1080],simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[1861],simde_mm256_xor_si256(c2[1501],simde_mm256_xor_si256(c2[1741],simde_mm256_xor_si256(c2[1381],simde_mm256_xor_si256(c2[307],simde_mm256_xor_si256(c2[1866],simde_mm256_xor_si256(c2[1327],simde_mm256_xor_si256(c2[967],simde_mm256_xor_si256(c2[728],simde_mm256_xor_si256(c2[428],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[612],simde_mm256_xor_si256(c2[252],simde_mm256_xor_si256(c2[1152],simde_mm256_xor_si256(c2[852],simde_mm256_xor_si256(c2[792],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[500],simde_mm256_xor_si256(c2[140],simde_mm256_xor_si256(c2[1519],simde_mm256_xor_si256(c2[1159],simde_mm256_xor_si256(c2[1226],simde_mm256_xor_si256(c2[866],simde_mm256_xor_si256(c2[1105],simde_mm256_xor_si256(c2[745],simde_mm256_xor_si256(c2[1285],simde_mm256_xor_si256(c2[985],simde_mm256_xor_si256(c2[925],simde_mm256_xor_si256(c2[31],simde_mm256_xor_si256(c2[1590],simde_mm256_xor_si256(c2[750],simde_mm256_xor_si256(c2[450],simde_mm256_xor_si256(c2[390],simde_mm256_xor_si256(c2[696],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[1777],simde_mm256_xor_si256(c2[1897],simde_mm256_xor_si256(c2[1597],simde_mm256_xor_si256(c2[1537],simde_mm256_xor_si256(c2[1902],simde_mm256_xor_si256(c2[1542],simde_mm256_xor_si256(c2[1603],simde_mm256_xor_si256(c2[1303],simde_mm256_xor_si256(c2[1243],simde_mm256_xor_si256(c2[1788],simde_mm256_xor_si256(c2[1428],simde_mm256_xor_si256(c2[1369],simde_mm256_xor_si256(c2[1009],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[1669],simde_mm256_xor_si256(c2[1609],simde_mm256_xor_si256(c2[1014],simde_mm256_xor_si256(c2[654],simde_mm256_xor_si256(c2[475],simde_mm256_xor_si256(c2[115],simde_mm256_xor_si256(c2[1854],simde_mm256_xor_si256(c2[1554],c2[1494])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 38
d2[114]=simde_mm256_xor_si256(c2[722],simde_mm256_xor_si256(c2[662],simde_mm256_xor_si256(c2[1440],simde_mm256_xor_si256(c2[1320],simde_mm256_xor_si256(c2[1868],simde_mm256_xor_si256(c2[1808],simde_mm256_xor_si256(c2[906],simde_mm256_xor_si256(c2[307],simde_mm256_xor_si256(c2[1208],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[734],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[1879],simde_mm256_xor_si256(c2[79],simde_mm256_xor_si256(c2[1098],simde_mm256_xor_si256(c2[805],simde_mm256_xor_si256(c2[684],simde_mm256_xor_si256(c2[864],simde_mm256_xor_si256(c2[1532],simde_mm256_xor_si256(c2[332],simde_mm256_xor_si256(c2[1411],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[1716],simde_mm256_xor_si256(c2[1476],simde_mm256_xor_si256(c2[1484],simde_mm256_xor_si256(c2[1182],simde_mm256_xor_si256(c2[1370],simde_mm256_xor_si256(c2[948],simde_mm256_xor_si256(c2[1548],simde_mm256_xor_si256(c2[656],simde_mm256_xor_si256(c2[596],simde_mm256_xor_si256(c2[54],c2[1436]))))))))))))))))))))))))))))))))));
//row: 39
d2[117]=simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[361],simde_mm256_xor_si256(c2[1202],simde_mm256_xor_si256(c2[1142],simde_mm256_xor_si256(c2[1022],simde_mm256_xor_si256(c2[1742],simde_mm256_xor_si256(c2[1567],simde_mm256_xor_si256(c2[1507],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[1872],simde_mm256_xor_si256(c2[1812],simde_mm256_xor_si256(c2[433],simde_mm256_xor_si256(c2[1638],simde_mm256_xor_si256(c2[1578],simde_mm256_xor_si256(c2[1760],simde_mm256_xor_si256(c2[1700],simde_mm256_xor_si256(c2[800],simde_mm256_xor_si256(c2[564],simde_mm256_xor_si256(c2[504],simde_mm256_xor_si256(c2[386],simde_mm256_xor_si256(c2[566],simde_mm256_xor_si256(c2[1291],simde_mm256_xor_si256(c2[1231],simde_mm256_xor_si256(c2[31],simde_mm256_xor_si256(c2[37],simde_mm256_xor_si256(c2[1896],simde_mm256_xor_si256(c2[1478],simde_mm256_xor_si256(c2[1418],simde_mm256_xor_si256(c2[1178],simde_mm256_xor_si256(c2[1243],simde_mm256_xor_si256(c2[1183],simde_mm256_xor_si256(c2[884],simde_mm256_xor_si256(c2[283],simde_mm256_xor_si256(c2[1129],simde_mm256_xor_si256(c2[1069],simde_mm256_xor_si256(c2[650],simde_mm256_xor_si256(c2[1250],simde_mm256_xor_si256(c2[355],simde_mm256_xor_si256(c2[295],simde_mm256_xor_si256(c2[1735],simde_mm256_xor_si256(c2[1675],c2[1135]))))))))))))))))))))))))))))))))))))))))));
//row: 40
d2[120]=simde_mm256_xor_si256(c2[1442],simde_mm256_xor_si256(c2[961],simde_mm256_xor_si256(c2[301],simde_mm256_xor_si256(c2[1742],simde_mm256_xor_si256(c2[181],simde_mm256_xor_si256(c2[1622],simde_mm256_xor_si256(c2[666],simde_mm256_xor_si256(c2[188],simde_mm256_xor_si256(c2[1686],simde_mm256_xor_si256(c2[1208],simde_mm256_xor_si256(c2[1087],simde_mm256_xor_si256(c2[666],simde_mm256_xor_si256(c2[606],simde_mm256_xor_si256(c2[974],simde_mm256_xor_si256(c2[493],simde_mm256_xor_si256(c2[1514],simde_mm256_xor_si256(c2[1093],simde_mm256_xor_si256(c2[1033],simde_mm256_xor_si256(c2[432],simde_mm256_xor_si256(c2[740],simde_mm256_xor_si256(c2[259],simde_mm256_xor_si256(c2[859],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[1878],simde_mm256_xor_si256(c2[1400],simde_mm256_xor_si256(c2[1585],simde_mm256_xor_si256(c2[1104],simde_mm256_xor_si256(c2[1464],simde_mm256_xor_si256(c2[986],simde_mm256_xor_si256(c2[1644],simde_mm256_xor_si256(c2[1226],simde_mm256_xor_si256(c2[1166],simde_mm256_xor_si256(c2[390],simde_mm256_xor_si256(c2[1831],simde_mm256_xor_si256(c2[1112],simde_mm256_xor_si256(c2[691],simde_mm256_xor_si256(c2[631],simde_mm256_xor_si256(c2[1058],simde_mm256_xor_si256(c2[577],simde_mm256_xor_si256(c2[577],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[337],simde_mm256_xor_si256(c2[1838],simde_mm256_xor_si256(c2[1778],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[1783],simde_mm256_xor_si256(c2[43],simde_mm256_xor_si256(c2[1544],simde_mm256_xor_si256(c2[1484],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[1669],simde_mm256_xor_si256(c2[1728],simde_mm256_xor_si256(c2[1250],simde_mm256_xor_si256(c2[409],simde_mm256_xor_si256(c2[1910],simde_mm256_xor_si256(c2[1850],simde_mm256_xor_si256(c2[1376],simde_mm256_xor_si256(c2[895],simde_mm256_xor_si256(c2[834],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[294],simde_mm256_xor_si256(c2[1795],c2[1735]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 41
d2[123]=simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[541],simde_mm256_xor_si256(c2[1322],simde_mm256_xor_si256(c2[1202],simde_mm256_xor_si256(c2[1747],simde_mm256_xor_si256(c2[1687],simde_mm256_xor_si256(c2[788],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[1147],simde_mm256_xor_si256(c2[133],simde_mm256_xor_si256(c2[73],simde_mm256_xor_si256(c2[613],simde_mm256_xor_si256(c2[1818],simde_mm256_xor_si256(c2[1758],simde_mm256_xor_si256(c2[1880],simde_mm256_xor_si256(c2[980],simde_mm256_xor_si256(c2[684],simde_mm256_xor_si256(c2[566],simde_mm256_xor_si256(c2[746],simde_mm256_xor_si256(c2[1411],simde_mm256_xor_si256(c2[211],simde_mm256_xor_si256(c2[450],simde_mm256_xor_si256(c2[217],simde_mm256_xor_si256(c2[157],simde_mm256_xor_si256(c2[1598],simde_mm256_xor_si256(c2[1358],simde_mm256_xor_si256(c2[1363],simde_mm256_xor_si256(c2[1064],simde_mm256_xor_si256(c2[1249],simde_mm256_xor_si256(c2[830],simde_mm256_xor_si256(c2[1430],simde_mm256_xor_si256(c2[535],simde_mm256_xor_si256(c2[475],simde_mm256_xor_si256(c2[1855],c2[1315]))))))))))))))))))))))))))))))))));
}
}
#endif