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
45 KiB
C

#ifdef __AVX2__
#include "PHY/sse_intrin.h"
// generated code for Zc=32, byte encoding
static inline __attribute__ ((no_sanitize("address", "undefined"))) void ldpc_BG2_Zc32_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<1; i2++) {
c2=&csimd[i2];
d2=&dsimd[i2];
//row: 0
d2[0]=simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[346],simde_mm256_xor_si256(c2[94],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[388],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[342],c2[390]))))))))))))))))))))))))));
//row: 1
d2[1]=simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[346],simde_mm256_xor_si256(c2[94],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[388],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[342],c2[390]))))))))))))))))))))))))))))))));
//row: 2
d2[2]=simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[78],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[358],simde_mm256_xor_si256(c2[346],simde_mm256_xor_si256(c2[94],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[388],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[342],c2[390]))))))))))))))))))))))))))))))))))))))));
//row: 3
d2[3]=simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[316],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[346],simde_mm256_xor_si256(c2[106],simde_mm256_xor_si256(c2[94],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[388],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[18],c2[390]))))))))))))))))))))))))))))))))));
//row: 4
d2[4]=simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[156],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[290],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[222],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[320],simde_mm256_xor_si256(c2[56],simde_mm256_xor_si256(c2[46],simde_mm256_xor_si256(c2[178],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[258],simde_mm256_xor_si256(c2[246],simde_mm256_xor_si256(c2[42],c2[90]))))))))))))))))))))))))))))))))));
//row: 5
d2[5]=simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[156],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[290],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[222],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[320],simde_mm256_xor_si256(c2[56],simde_mm256_xor_si256(c2[46],simde_mm256_xor_si256(c2[178],simde_mm256_xor_si256(c2[34],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[386],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[258],simde_mm256_xor_si256(c2[246],simde_mm256_xor_si256(c2[42],c2[90]))))))))))))))))))))))))))))))))))));
//row: 6
d2[6]=simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[62],simde_mm256_xor_si256(c2[124],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[294],simde_mm256_xor_si256(c2[282],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[114],simde_mm256_xor_si256(c2[320],simde_mm256_xor_si256(c2[212],simde_mm256_xor_si256(c2[332],simde_mm256_xor_si256(c2[322],simde_mm256_xor_si256(c2[70],simde_mm256_xor_si256(c2[58],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[366],c2[354]))))))))))))))))))))))))))))))))))));
//row: 7
d2[7]=simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[290],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[62],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[14],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[376],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[340],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[380],simde_mm256_xor_si256(c2[200],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[92],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[8],simde_mm256_xor_si256(c2[212],simde_mm256_xor_si256(c2[382],simde_mm256_xor_si256(c2[202],simde_mm256_xor_si256(c2[346],simde_mm256_xor_si256(c2[130],simde_mm256_xor_si256(c2[334],simde_mm256_xor_si256(c2[238],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[264],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[244],simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[258],simde_mm256_xor_si256(c2[42],c2[246]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 8
d2[8]=simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[156],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[264],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[362],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[376],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[308],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[46],simde_mm256_xor_si256(c2[34],simde_mm256_xor_si256(c2[166],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[246],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[30],c2[78]))))))))))))))))))))))))))))))))))))))))));
//row: 9
d2[9]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[156],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[146],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[362],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[28],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[30],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[30],simde_mm256_xor_si256(c2[308],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[200],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[320],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[310],simde_mm256_xor_si256(c2[238],simde_mm256_xor_si256(c2[58],simde_mm256_xor_si256(c2[370],simde_mm256_xor_si256(c2[252],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[126],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[354],c2[282])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 10
d2[10]=simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[12],c2[266])));
//row: 11
d2[11]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[146],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[2],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[140],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[250],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[382],simde_mm256_xor_si256(c2[252],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[124],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[246],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[294],c2[234])))))))))))))))))))))))))))))))))))));
//row: 12
d2[12]=simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[264],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[316],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[90],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[140],simde_mm256_xor_si256(c2[130],simde_mm256_xor_si256(c2[262],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[388],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[330],simde_mm256_xor_si256(c2[126],c2[174]))))))))))))))))))))))))))))))))));
//row: 13
d2[13]=simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[74],simde_mm256_xor_si256(c2[62],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[282],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[114],simde_mm256_xor_si256(c2[320],simde_mm256_xor_si256(c2[212],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[332],simde_mm256_xor_si256(c2[322],simde_mm256_xor_si256(c2[82],simde_mm256_xor_si256(c2[70],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[378],c2[366])))))))))))))))))))))))))))))))))))));
//row: 14
d2[14]=simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[290],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[28],simde_mm256_xor_si256(c2[340],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[380],simde_mm256_xor_si256(c2[56],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[332],simde_mm256_xor_si256(c2[80],simde_mm256_xor_si256(c2[8],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[382],simde_mm256_xor_si256(c2[58],simde_mm256_xor_si256(c2[202],simde_mm256_xor_si256(c2[130],simde_mm256_xor_si256(c2[190],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[362],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[328],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[316],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[258],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[114],simde_mm256_xor_si256(c2[42],c2[102])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 15
d2[15]=simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[252],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[2],simde_mm256_xor_si256(c2[74],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[316],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[246],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[140],simde_mm256_xor_si256(c2[212],simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[104],simde_mm256_xor_si256(c2[152],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[142],simde_mm256_xor_si256(c2[214],simde_mm256_xor_si256(c2[274],simde_mm256_xor_si256(c2[346],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[62],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[376],simde_mm256_xor_si256(c2[64],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[30],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[186],c2[258]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 16
d2[16]=simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[74],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[244],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[30],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[294],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[282],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[188],simde_mm256_xor_si256(c2[56],simde_mm256_xor_si256(c2[176],simde_mm256_xor_si256(c2[332],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[188],simde_mm256_xor_si256(c2[190],simde_mm256_xor_si256(c2[58],simde_mm256_xor_si256(c2[178],simde_mm256_xor_si256(c2[190],simde_mm256_xor_si256(c2[310],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[252],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[362],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[28],simde_mm256_xor_si256(c2[316],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[390],simde_mm256_xor_si256(c2[258],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[222],c2[186])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 17
d2[17]=simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[74],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[362],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[78],simde_mm256_xor_si256(c2[282],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[176],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[188],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[358],simde_mm256_xor_si256(c2[178],simde_mm256_xor_si256(c2[346],simde_mm256_xor_si256(c2[310],simde_mm256_xor_si256(c2[94],simde_mm256_xor_si256(c2[346],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[388],simde_mm256_xor_si256(c2[28],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[390],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[222],c2[390])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 18
d2[18]=simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[36],c2[230]));
//row: 19
d2[19]=simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[2],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[222],simde_mm256_xor_si256(c2[366],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[152],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[262],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[264],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[78],simde_mm256_xor_si256(c2[258],c2[306]))))))))))))))))))))))))))));
//row: 20
d2[20]=simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[156],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[50],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[282],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[30],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[308],simde_mm256_xor_si256(c2[200],simde_mm256_xor_si256(c2[320],simde_mm256_xor_si256(c2[116],simde_mm256_xor_si256(c2[310],simde_mm256_xor_si256(c2[58],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[126],simde_mm256_xor_si256(c2[306],c2[354]))))))))))))))))))))))))))))))))));
//row: 21
d2[21]=simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[74],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[282],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[176],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[200],simde_mm256_xor_si256(c2[188],simde_mm256_xor_si256(c2[178],simde_mm256_xor_si256(c2[322],simde_mm256_xor_si256(c2[310],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[28],simde_mm256_xor_si256(c2[64],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[234],c2[222]))))))))))))))))))))))))))))))))))));
//row: 22
d2[22]=simde_mm256_xor_si256(c2[362],c2[376]);
//row: 23
d2[23]=simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[138],c2[178]));
//row: 24
d2[24]=simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[136],c2[114]));
//row: 25
d2[25]=simde_mm256_xor_si256(c2[48],c2[346]);
//row: 26
d2[26]=simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[14],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[64],simde_mm256_xor_si256(c2[244],simde_mm256_xor_si256(c2[304],simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[78],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[164],simde_mm256_xor_si256(c2[296],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[284],simde_mm256_xor_si256(c2[358],simde_mm256_xor_si256(c2[346],simde_mm256_xor_si256(c2[274],simde_mm256_xor_si256(c2[34],simde_mm256_xor_si256(c2[94],simde_mm256_xor_si256(c2[22],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[388],simde_mm256_xor_si256(c2[316],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[124],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[90],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[330],simde_mm256_xor_si256(c2[390],c2[318])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 27
d2[27]=simde_mm256_xor_si256(c2[96],c2[288]);
//row: 28
d2[28]=simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[64],c2[94]));
//row: 29
d2[29]=simde_mm256_xor_si256(c2[216],c2[344]);
//row: 30
d2[30]=simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[202],simde_mm256_xor_si256(c2[122],c2[258])));
//row: 31
d2[31]=simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[328],simde_mm256_xor_si256(c2[316],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[78],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[380],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[358],simde_mm256_xor_si256(c2[118],simde_mm256_xor_si256(c2[106],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[290],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[244],simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[30],c2[18])))))))))))))))))))))))))))))))))));
//row: 32
d2[32]=simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[156],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[264],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[376],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[308],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[46],simde_mm256_xor_si256(c2[34],simde_mm256_xor_si256(c2[166],simde_mm256_xor_si256(c2[154],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[38],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[246],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[30],c2[78]))))))))))))))))))))))))))))))))))))))))));
//row: 33
d2[33]=simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[92],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[104],simde_mm256_xor_si256(c2[94],simde_mm256_xor_si256(c2[226],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[156],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[14],simde_mm256_xor_si256(c2[62],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[328],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[294],simde_mm256_xor_si256(c2[90],c2[138]))))))))))))))))))))))))))));
//row: 34
d2[34]=simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[290],simde_mm256_xor_si256(c2[74],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[146],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[174],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[330],simde_mm256_xor_si256(c2[318],simde_mm256_xor_si256(c2[114],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[212],simde_mm256_xor_si256(c2[8],simde_mm256_xor_si256(c2[104],simde_mm256_xor_si256(c2[284],simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[20],simde_mm256_xor_si256(c2[226],simde_mm256_xor_si256(c2[214],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[154],simde_mm256_xor_si256(c2[346],simde_mm256_xor_si256(c2[142],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[264],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[252],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[386],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[64],simde_mm256_xor_si256(c2[244],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[30],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[222],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[390],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[258],c2[54]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 35
d2[35]=simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[194],simde_mm256_xor_si256(c2[74],simde_mm256_xor_si256(c2[302],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[124],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[294],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[126],simde_mm256_xor_si256(c2[332],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[334],simde_mm256_xor_si256(c2[82],simde_mm256_xor_si256(c2[106],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[254],simde_mm256_xor_si256(c2[376],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[150],simde_mm256_xor_si256(c2[330],c2[378]))))))))))))))))))))))))))))))))));
//row: 36
d2[36]=simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[76],c2[326]));
//row: 37
d2[37]=simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[146],simde_mm256_xor_si256(c2[98],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[362],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[28],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[244],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[246],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[78],simde_mm256_xor_si256(c2[30],simde_mm256_xor_si256(c2[284],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[176],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[296],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[286],simde_mm256_xor_si256(c2[238],simde_mm256_xor_si256(c2[382],simde_mm256_xor_si256(c2[34],simde_mm256_xor_si256(c2[370],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[206],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[328],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[124],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[282],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[294],simde_mm256_xor_si256(c2[330],c2[282])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 38
d2[38]=simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[264],simde_mm256_xor_si256(c2[326],simde_mm256_xor_si256(c2[314],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[376],simde_mm256_xor_si256(c2[6],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[138],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[308],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[34],simde_mm256_xor_si256(c2[166],simde_mm256_xor_si256(c2[34],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[276],simde_mm256_xor_si256(c2[26],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[246],simde_mm256_xor_si256(c2[234],simde_mm256_xor_si256(c2[30],c2[78]))))))))))))))))))))))))))))))))));
//row: 39
d2[39]=simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[278],simde_mm256_xor_si256(c2[266],simde_mm256_xor_si256(c2[230],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[328],simde_mm256_xor_si256(c2[342],simde_mm256_xor_si256(c2[330],simde_mm256_xor_si256(c2[102],simde_mm256_xor_si256(c2[90],simde_mm256_xor_si256(c2[162],simde_mm256_xor_si256(c2[380],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[380],simde_mm256_xor_si256(c2[382],simde_mm256_xor_si256(c2[370],simde_mm256_xor_si256(c2[118],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[362],simde_mm256_xor_si256(c2[290],simde_mm256_xor_si256(c2[158],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[28],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[244],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[378],simde_mm256_xor_si256(c2[366],c2[30]))))))))))))))))))))))))))))))))))))))))));
//row: 40
d2[40]=simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[146],simde_mm256_xor_si256(c2[338],simde_mm256_xor_si256(c2[110],simde_mm256_xor_si256(c2[2],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[374],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[52],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[210],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[354],simde_mm256_xor_si256(c2[270],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[92],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[368],simde_mm256_xor_si256(c2[140],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[104],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[94],simde_mm256_xor_si256(c2[250],simde_mm256_xor_si256(c2[10],simde_mm256_xor_si256(c2[226],simde_mm256_xor_si256(c2[382],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[252],simde_mm256_xor_si256(c2[156],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[242],simde_mm256_xor_si256(c2[182],simde_mm256_xor_si256(c2[14],simde_mm256_xor_si256(c2[170],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[328],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[124],simde_mm256_xor_si256(c2[294],simde_mm256_xor_si256(c2[66],simde_mm256_xor_si256(c2[90],simde_mm256_xor_si256(c2[246],simde_mm256_xor_si256(c2[306],simde_mm256_xor_si256(c2[138],c2[294]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
//row: 41
d2[41]=simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[134],simde_mm256_xor_si256(c2[122],simde_mm256_xor_si256(c2[86],simde_mm256_xor_si256(c2[350],simde_mm256_xor_si256(c2[14],simde_mm256_xor_si256(c2[28],simde_mm256_xor_si256(c2[16],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[198],simde_mm256_xor_si256(c2[186],simde_mm256_xor_si256(c2[330],simde_mm256_xor_si256(c2[18],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[116],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[226],simde_mm256_xor_si256(c2[358],simde_mm256_xor_si256(c2[70],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[218],simde_mm256_xor_si256(c2[146],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[54],simde_mm256_xor_si256(c2[42],simde_mm256_xor_si256(c2[222],c2[270]))))))))))))))))))))))))))))))))));
}
}
#endif