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
141 lines
45 KiB
C
141 lines
45 KiB
C
#ifdef __AVX2__
|
|
#include "PHY/sse_intrin.h"
|
|
// generated code for Zc=64, byte encoding
|
|
static inline __attribute__ ((no_sanitize("address", "undefined"))) void ldpc_BG2_Zc64_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<2; i2++) {
|
|
c2=&csimd[i2];
|
|
d2=&dsimd[i2];
|
|
|
|
//row: 0
|
|
d2[0]=simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[549],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[809],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[173],simde_mm256_xor_si256(c2[365],simde_mm256_xor_si256(c2[913],simde_mm256_xor_si256(c2[625],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[917],simde_mm256_xor_si256(c2[245],simde_mm256_xor_si256(c2[921],simde_mm256_xor_si256(c2[57],simde_mm256_xor_si256(c2[536],simde_mm256_xor_si256(c2[892],simde_mm256_xor_si256(c2[701],simde_mm256_xor_si256(c2[1024],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[576],simde_mm256_xor_si256(c2[420],simde_mm256_xor_si256(c2[901],c2[1029]))))))))))))))))))))))))));
|
|
|
|
//row: 1
|
|
d2[2]=simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[677],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[549],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[392],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[809],simde_mm256_xor_si256(c2[844],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[173],simde_mm256_xor_si256(c2[365],simde_mm256_xor_si256(c2[913],simde_mm256_xor_si256(c2[625],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[917],simde_mm256_xor_si256(c2[245],simde_mm256_xor_si256(c2[953],simde_mm256_xor_si256(c2[921],simde_mm256_xor_si256(c2[57],simde_mm256_xor_si256(c2[536],simde_mm256_xor_si256(c2[892],simde_mm256_xor_si256(c2[701],simde_mm256_xor_si256(c2[1024],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[576],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[420],simde_mm256_xor_si256(c2[901],c2[1029]))))))))))))))))))))))))))))))));
|
|
|
|
//row: 2
|
|
d2[4]=simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[677],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[549],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[392],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[809],simde_mm256_xor_si256(c2[844],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[205],simde_mm256_xor_si256(c2[173],simde_mm256_xor_si256(c2[365],simde_mm256_xor_si256(c2[945],simde_mm256_xor_si256(c2[913],simde_mm256_xor_si256(c2[625],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[949],simde_mm256_xor_si256(c2[917],simde_mm256_xor_si256(c2[245],simde_mm256_xor_si256(c2[953],simde_mm256_xor_si256(c2[921],simde_mm256_xor_si256(c2[89],simde_mm256_xor_si256(c2[57],simde_mm256_xor_si256(c2[536],simde_mm256_xor_si256(c2[924],simde_mm256_xor_si256(c2[892],simde_mm256_xor_si256(c2[701],simde_mm256_xor_si256(c2[33],simde_mm256_xor_si256(c2[1024],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[576],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[420],simde_mm256_xor_si256(c2[933],simde_mm256_xor_si256(c2[901],c2[1029]))))))))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 3
|
|
d2[6]=simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[549],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[841],simde_mm256_xor_si256(c2[809],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[173],simde_mm256_xor_si256(c2[365],simde_mm256_xor_si256(c2[913],simde_mm256_xor_si256(c2[625],simde_mm256_xor_si256(c2[976],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[917],simde_mm256_xor_si256(c2[277],simde_mm256_xor_si256(c2[245],simde_mm256_xor_si256(c2[921],simde_mm256_xor_si256(c2[57],simde_mm256_xor_si256(c2[568],simde_mm256_xor_si256(c2[536],simde_mm256_xor_si256(c2[892],simde_mm256_xor_si256(c2[733],simde_mm256_xor_si256(c2[701],simde_mm256_xor_si256(c2[1024],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[576],simde_mm256_xor_si256(c2[420],simde_mm256_xor_si256(c2[901],simde_mm256_xor_si256(c2[36],c2[1029]))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 4
|
|
d2[8]=simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[480],simde_mm256_xor_si256(c2[417],simde_mm256_xor_si256(c2[736],simde_mm256_xor_si256(c2[609],simde_mm256_xor_si256(c2[901],simde_mm256_xor_si256(c2[869],simde_mm256_xor_si256(c2[773],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[708],simde_mm256_xor_si256(c2[616],simde_mm256_xor_si256(c2[584],simde_mm256_xor_si256(c2[8],simde_mm256_xor_si256(c2[45],simde_mm256_xor_si256(c2[13],simde_mm256_xor_si256(c2[397],simde_mm256_xor_si256(c2[589],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[849],simde_mm256_xor_si256(c2[145],simde_mm256_xor_si256(c2[116],simde_mm256_xor_si256(c2[469],simde_mm256_xor_si256(c2[152],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[281],simde_mm256_xor_si256(c2[760],simde_mm256_xor_si256(c2[93],simde_mm256_xor_si256(c2[925],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[737],simde_mm256_xor_si256(c2[800],simde_mm256_xor_si256(c2[676],simde_mm256_xor_si256(c2[644],simde_mm256_xor_si256(c2[100],c2[228]))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 5
|
|
d2[10]=simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[416],simde_mm256_xor_si256(c2[737],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[900],simde_mm256_xor_si256(c2[868],simde_mm256_xor_si256(c2[772],simde_mm256_xor_si256(c2[453],simde_mm256_xor_si256(c2[293],simde_mm256_xor_si256(c2[617],simde_mm256_xor_si256(c2[585],simde_mm256_xor_si256(c2[9],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[396],simde_mm256_xor_si256(c2[588],simde_mm256_xor_si256(c2[113],simde_mm256_xor_si256(c2[848],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[117],simde_mm256_xor_si256(c2[468],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[153],simde_mm256_xor_si256(c2[121],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[761],simde_mm256_xor_si256(c2[92],simde_mm256_xor_si256(c2[924],simde_mm256_xor_si256(c2[1020],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[736],simde_mm256_xor_si256(c2[801],simde_mm256_xor_si256(c2[677],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[101],c2[229]))))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 6
|
|
d2[12]=simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[449],simde_mm256_xor_si256(c2[864],simde_mm256_xor_si256(c2[612],simde_mm256_xor_si256(c2[580],simde_mm256_xor_si256(c2[484],simde_mm256_xor_si256(c2[165],simde_mm256_xor_si256(c2[329],simde_mm256_xor_si256(c2[297],simde_mm256_xor_si256(c2[744],simde_mm256_xor_si256(c2[781],simde_mm256_xor_si256(c2[749],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[848],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[881],simde_mm256_xor_si256(c2[852],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[149],simde_mm256_xor_si256(c2[888],simde_mm256_xor_si256(c2[856],simde_mm256_xor_si256(c2[1017],simde_mm256_xor_si256(c2[473],simde_mm256_xor_si256(c2[829],simde_mm256_xor_si256(c2[636],simde_mm256_xor_si256(c2[445],simde_mm256_xor_si256(c2[961],simde_mm256_xor_si256(c2[448],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[389],simde_mm256_xor_si256(c2[357],simde_mm256_xor_si256(c2[836],simde_mm256_xor_si256(c2[964],c2[932]))))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 7
|
|
d2[14]=simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[897],simde_mm256_xor_si256(c2[289],simde_mm256_xor_si256(c2[832],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[773],simde_mm256_xor_si256(c2[741],simde_mm256_xor_si256(c2[261],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[165],simde_mm256_xor_si256(c2[901],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[869],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[488],simde_mm256_xor_si256(c2[456],simde_mm256_xor_si256(c2[1001],simde_mm256_xor_si256(c2[457],simde_mm256_xor_si256(c2[905],simde_mm256_xor_si256(c2[425],simde_mm256_xor_si256(c2[940],simde_mm256_xor_si256(c2[908],simde_mm256_xor_si256(c2[428],simde_mm256_xor_si256(c2[269],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[461],simde_mm256_xor_si256(c2[1004],simde_mm256_xor_si256(c2[1009],simde_mm256_xor_si256(c2[529],simde_mm256_xor_si256(c2[721],simde_mm256_xor_si256(c2[241],simde_mm256_xor_si256(c2[592],simde_mm256_xor_si256(c2[17],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[1013],simde_mm256_xor_si256(c2[533],simde_mm256_xor_si256(c2[916],simde_mm256_xor_si256(c2[341],simde_mm256_xor_si256(c2[884],simde_mm256_xor_si256(c2[628],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[1017],simde_mm256_xor_si256(c2[537],simde_mm256_xor_si256(c2[153],simde_mm256_xor_si256(c2[696],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[632],simde_mm256_xor_si256(c2[152],simde_mm256_xor_si256(c2[988],simde_mm256_xor_si256(c2[508],simde_mm256_xor_si256(c2[349],simde_mm256_xor_si256(c2[797],simde_mm256_xor_si256(c2[317],simde_mm256_xor_si256(c2[412],simde_mm256_xor_si256(c2[97],simde_mm256_xor_si256(c2[640],simde_mm256_xor_si256(c2[609],simde_mm256_xor_si256(c2[129],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[672],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[548],simde_mm256_xor_si256(c2[516],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[517],simde_mm256_xor_si256(c2[677],simde_mm256_xor_si256(c2[100],c2[645]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 8
|
|
d2[16]=simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[449],simde_mm256_xor_si256(c2[416],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[705],simde_mm256_xor_si256(c2[448],simde_mm256_xor_si256(c2[868],simde_mm256_xor_si256(c2[836],simde_mm256_xor_si256(c2[740],simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[964],simde_mm256_xor_si256(c2[585],simde_mm256_xor_si256(c2[553],simde_mm256_xor_si256(c2[1000],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[1005],simde_mm256_xor_si256(c2[396],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[556],simde_mm256_xor_si256(c2[113],simde_mm256_xor_si256(c2[81],simde_mm256_xor_si256(c2[816],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[117],simde_mm256_xor_si256(c2[85],simde_mm256_xor_si256(c2[436],simde_mm256_xor_si256(c2[121],simde_mm256_xor_si256(c2[89],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[729],simde_mm256_xor_si256(c2[92],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[892],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[769],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[613],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[69],c2[197]))))))))))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 9
|
|
d2[18]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[993],simde_mm256_xor_si256(c2[97],simde_mm256_xor_si256(c2[928],simde_mm256_xor_si256(c2[416],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[389],simde_mm256_xor_si256(c2[549],simde_mm256_xor_si256(c2[357],simde_mm256_xor_si256(c2[453],simde_mm256_xor_si256(c2[261],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[965],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[104],simde_mm256_xor_si256(c2[264],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[713],simde_mm256_xor_si256(c2[521],simde_mm256_xor_si256(c2[556],simde_mm256_xor_si256(c2[716],simde_mm256_xor_si256(c2[524],simde_mm256_xor_si256(c2[77],simde_mm256_xor_si256(c2[908],simde_mm256_xor_si256(c2[269],simde_mm256_xor_si256(c2[77],simde_mm256_xor_si256(c2[817],simde_mm256_xor_si256(c2[625],simde_mm256_xor_si256(c2[529],simde_mm256_xor_si256(c2[337],simde_mm256_xor_si256(c2[848],simde_mm256_xor_si256(c2[656],simde_mm256_xor_si256(c2[821],simde_mm256_xor_si256(c2[629],simde_mm256_xor_si256(c2[149],simde_mm256_xor_si256(c2[980],simde_mm256_xor_si256(c2[665],simde_mm256_xor_si256(c2[825],simde_mm256_xor_si256(c2[633],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[792],simde_mm256_xor_si256(c2[440],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[796],simde_mm256_xor_si256(c2[604],simde_mm256_xor_si256(c2[605],simde_mm256_xor_si256(c2[413],simde_mm256_xor_si256(c2[928],simde_mm256_xor_si256(c2[736],simde_mm256_xor_si256(c2[417],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[480],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[448],simde_mm256_xor_si256(c2[164],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[805],simde_mm256_xor_si256(c2[613],simde_mm256_xor_si256(c2[933],c2[741])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 10
|
|
d2[20]=simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[805],simde_mm256_xor_si256(c2[24],c2[701])));
|
|
|
|
//row: 11
|
|
d2[22]=simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[960],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[389],simde_mm256_xor_si256(c2[293],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[104],simde_mm256_xor_si256(c2[585],simde_mm256_xor_si256(c2[553],simde_mm256_xor_si256(c2[556],simde_mm256_xor_si256(c2[940],simde_mm256_xor_si256(c2[109],simde_mm256_xor_si256(c2[657],simde_mm256_xor_si256(c2[369],simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[688],simde_mm256_xor_si256(c2[661],simde_mm256_xor_si256(c2[21],simde_mm256_xor_si256(c2[1012],simde_mm256_xor_si256(c2[665],simde_mm256_xor_si256(c2[824],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[636],simde_mm256_xor_si256(c2[477],simde_mm256_xor_si256(c2[445],simde_mm256_xor_si256(c2[413],simde_mm256_xor_si256(c2[768],simde_mm256_xor_si256(c2[257],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[320],simde_mm256_xor_si256(c2[164],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[805],simde_mm256_xor_si256(c2[773],c2[612])))))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 12
|
|
d2[24]=simde_mm256_xor_si256(c2[736],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[641],simde_mm256_xor_si256(c2[960],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[676],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[840],simde_mm256_xor_si256(c2[808],simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[269],simde_mm256_xor_si256(c2[237],simde_mm256_xor_si256(c2[621],simde_mm256_xor_si256(c2[813],simde_mm256_xor_si256(c2[493],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[369],simde_mm256_xor_si256(c2[340],simde_mm256_xor_si256(c2[693],simde_mm256_xor_si256(c2[376],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[505],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[317],simde_mm256_xor_si256(c2[124],simde_mm256_xor_si256(c2[449],simde_mm256_xor_si256(c2[961],simde_mm256_xor_si256(c2[1024],simde_mm256_xor_si256(c2[900],simde_mm256_xor_si256(c2[868],simde_mm256_xor_si256(c2[324],c2[452]))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 13
|
|
d2[26]=simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[449],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[580],simde_mm256_xor_si256(c2[484],simde_mm256_xor_si256(c2[197],simde_mm256_xor_si256(c2[165],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[297],simde_mm256_xor_si256(c2[776],simde_mm256_xor_si256(c2[744],simde_mm256_xor_si256(c2[749],simde_mm256_xor_si256(c2[108],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[848],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[913],simde_mm256_xor_si256(c2[881],simde_mm256_xor_si256(c2[852],simde_mm256_xor_si256(c2[212],simde_mm256_xor_si256(c2[180],simde_mm256_xor_si256(c2[856],simde_mm256_xor_si256(c2[1017],simde_mm256_xor_si256(c2[505],simde_mm256_xor_si256(c2[473],simde_mm256_xor_si256(c2[829],simde_mm256_xor_si256(c2[668],simde_mm256_xor_si256(c2[636],simde_mm256_xor_si256(c2[961],simde_mm256_xor_si256(c2[448],simde_mm256_xor_si256(c2[545],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[357],simde_mm256_xor_si256(c2[836],simde_mm256_xor_si256(c2[996],c2[964])))))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 14
|
|
d2[28]=simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[289],simde_mm256_xor_si256(c2[448],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[769],simde_mm256_xor_si256(c2[773],simde_mm256_xor_si256(c2[741],simde_mm256_xor_si256(c2[900],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[804],simde_mm256_xor_si256(c2[517],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[485],simde_mm256_xor_si256(c2[613],simde_mm256_xor_si256(c2[488],simde_mm256_xor_si256(c2[456],simde_mm256_xor_si256(c2[617],simde_mm256_xor_si256(c2[73],simde_mm256_xor_si256(c2[905],simde_mm256_xor_si256(c2[41],simde_mm256_xor_si256(c2[940],simde_mm256_xor_si256(c2[908],simde_mm256_xor_si256(c2[44],simde_mm256_xor_si256(c2[269],simde_mm256_xor_si256(c2[428],simde_mm256_xor_si256(c2[461],simde_mm256_xor_si256(c2[620],simde_mm256_xor_si256(c2[1009],simde_mm256_xor_si256(c2[145],simde_mm256_xor_si256(c2[721],simde_mm256_xor_si256(c2[880],simde_mm256_xor_si256(c2[208],simde_mm256_xor_si256(c2[17],simde_mm256_xor_si256(c2[176],simde_mm256_xor_si256(c2[1013],simde_mm256_xor_si256(c2[149],simde_mm256_xor_si256(c2[532],simde_mm256_xor_si256(c2[341],simde_mm256_xor_si256(c2[500],simde_mm256_xor_si256(c2[24],simde_mm256_xor_si256(c2[1017],simde_mm256_xor_si256(c2[153],simde_mm256_xor_si256(c2[153],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[825],simde_mm256_xor_si256(c2[632],simde_mm256_xor_si256(c2[793],simde_mm256_xor_si256(c2[568],simde_mm256_xor_si256(c2[988],simde_mm256_xor_si256(c2[124],simde_mm256_xor_si256(c2[988],simde_mm256_xor_si256(c2[797],simde_mm256_xor_si256(c2[956],simde_mm256_xor_si256(c2[97],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[609],simde_mm256_xor_si256(c2[768],simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[672],simde_mm256_xor_si256(c2[833],simde_mm256_xor_si256(c2[548],simde_mm256_xor_si256(c2[516],simde_mm256_xor_si256(c2[677],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[133],simde_mm256_xor_si256(c2[293],simde_mm256_xor_si256(c2[100],c2[261])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 15
|
|
d2[30]=simde_mm256_xor_si256(c2[960],simde_mm256_xor_si256(c2[737],simde_mm256_xor_si256(c2[928],simde_mm256_xor_si256(c2[672],simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[993],simde_mm256_xor_si256(c2[161],simde_mm256_xor_si256(c2[609],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[5],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[709],simde_mm256_xor_si256(c2[900],simde_mm256_xor_si256(c2[41],simde_mm256_xor_si256(c2[841],simde_mm256_xor_si256(c2[9],simde_mm256_xor_si256(c2[265],simde_mm256_xor_si256(c2[456],simde_mm256_xor_si256(c2[493],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[461],simde_mm256_xor_si256(c2[652],simde_mm256_xor_si256(c2[845],simde_mm256_xor_si256(c2[844],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[369],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[81],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[400],simde_mm256_xor_si256(c2[593],simde_mm256_xor_si256(c2[373],simde_mm256_xor_si256(c2[564],simde_mm256_xor_si256(c2[724],simde_mm256_xor_si256(c2[917],simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[377],simde_mm256_xor_si256(c2[568],simde_mm256_xor_si256(c2[536],simde_mm256_xor_si256(c2[729],simde_mm256_xor_si256(c2[1017],simde_mm256_xor_si256(c2[185],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[541],simde_mm256_xor_si256(c2[157],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[480],simde_mm256_xor_si256(c2[673],simde_mm256_xor_si256(c2[992],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[901],simde_mm256_xor_si256(c2[69],simde_mm256_xor_si256(c2[357],simde_mm256_xor_si256(c2[548],simde_mm256_xor_si256(c2[485],c2[676]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 16
|
|
d2[32]=simde_mm256_xor_si256(c2[544],simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[833],simde_mm256_xor_si256(c2[800],simde_mm256_xor_si256(c2[449],simde_mm256_xor_si256(c2[768],simde_mm256_xor_si256(c2[768],simde_mm256_xor_si256(c2[64],simde_mm256_xor_si256(c2[933],simde_mm256_xor_si256(c2[229],simde_mm256_xor_si256(c2[901],simde_mm256_xor_si256(c2[197],simde_mm256_xor_si256(c2[805],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[484],simde_mm256_xor_si256(c2[805],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[648],simde_mm256_xor_si256(c2[969],simde_mm256_xor_si256(c2[616],simde_mm256_xor_si256(c2[937],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[361],simde_mm256_xor_si256(c2[77],simde_mm256_xor_si256(c2[396],simde_mm256_xor_si256(c2[45],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[780],simde_mm256_xor_si256(c2[429],simde_mm256_xor_si256(c2[748],simde_mm256_xor_si256(c2[621],simde_mm256_xor_si256(c2[940],simde_mm256_xor_si256(c2[497],simde_mm256_xor_si256(c2[144],simde_mm256_xor_si256(c2[465],simde_mm256_xor_si256(c2[881],simde_mm256_xor_si256(c2[177],simde_mm256_xor_si256(c2[177],simde_mm256_xor_si256(c2[496],simde_mm256_xor_si256(c2[501],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[469],simde_mm256_xor_si256(c2[501],simde_mm256_xor_si256(c2[820],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[505],simde_mm256_xor_si256(c2[152],simde_mm256_xor_si256(c2[473],simde_mm256_xor_si256(c2[664],simde_mm256_xor_si256(c2[313],simde_mm256_xor_si256(c2[632],simde_mm256_xor_si256(c2[792],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[476],simde_mm256_xor_si256(c2[125],simde_mm256_xor_si256(c2[444],simde_mm256_xor_si256(c2[957],simde_mm256_xor_si256(c2[253],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[257],simde_mm256_xor_si256(c2[576],simde_mm256_xor_si256(c2[769],simde_mm256_xor_si256(c2[65],simde_mm256_xor_si256(c2[832],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[708],simde_mm256_xor_si256(c2[1029],simde_mm256_xor_si256(c2[676],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[485],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[453],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[581],c2[484])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 17
|
|
d2[34]=simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[833],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[768],simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[64],simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[229],simde_mm256_xor_si256(c2[677],simde_mm256_xor_si256(c2[197],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[549],simde_mm256_xor_si256(c2[805],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[965],simde_mm256_xor_si256(c2[969],simde_mm256_xor_si256(c2[392],simde_mm256_xor_si256(c2[937],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[361],simde_mm256_xor_si256(c2[809],simde_mm256_xor_si256(c2[396],simde_mm256_xor_si256(c2[844],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[205],simde_mm256_xor_si256(c2[748],simde_mm256_xor_si256(c2[173],simde_mm256_xor_si256(c2[940],simde_mm256_xor_si256(c2[365],simde_mm256_xor_si256(c2[945],simde_mm256_xor_si256(c2[465],simde_mm256_xor_si256(c2[913],simde_mm256_xor_si256(c2[177],simde_mm256_xor_si256(c2[625],simde_mm256_xor_si256(c2[496],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[949],simde_mm256_xor_si256(c2[469],simde_mm256_xor_si256(c2[917],simde_mm256_xor_si256(c2[820],simde_mm256_xor_si256(c2[245],simde_mm256_xor_si256(c2[917],simde_mm256_xor_si256(c2[505],simde_mm256_xor_si256(c2[953],simde_mm256_xor_si256(c2[473],simde_mm256_xor_si256(c2[921],simde_mm256_xor_si256(c2[89],simde_mm256_xor_si256(c2[632],simde_mm256_xor_si256(c2[57],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[536],simde_mm256_xor_si256(c2[924],simde_mm256_xor_si256(c2[444],simde_mm256_xor_si256(c2[892],simde_mm256_xor_si256(c2[253],simde_mm256_xor_si256(c2[701],simde_mm256_xor_si256(c2[33],simde_mm256_xor_si256(c2[576],simde_mm256_xor_si256(c2[1024],simde_mm256_xor_si256(c2[65],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[576],simde_mm256_xor_si256(c2[1029],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[420],simde_mm256_xor_si256(c2[933],simde_mm256_xor_si256(c2[453],simde_mm256_xor_si256(c2[901],simde_mm256_xor_si256(c2[581],c2[1029])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 18
|
|
d2[36]=simde_mm256_xor_si256(c2[896],simde_mm256_xor_si256(c2[88],c2[605]));
|
|
|
|
//row: 19
|
|
d2[38]=simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[992],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[736],simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[325],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[644],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[585],simde_mm256_xor_si256(c2[588],simde_mm256_xor_si256(c2[972],simde_mm256_xor_si256(c2[141],simde_mm256_xor_si256(c2[689],simde_mm256_xor_si256(c2[401],simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[693],simde_mm256_xor_si256(c2[21],simde_mm256_xor_si256(c2[697],simde_mm256_xor_si256(c2[856],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[668],simde_mm256_xor_si256(c2[477],simde_mm256_xor_si256(c2[800],simde_mm256_xor_si256(c2[289],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[677],c2[805]))))))))))))))))))))))))))));
|
|
|
|
//row: 20
|
|
d2[40]=simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[161],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[417],simde_mm256_xor_si256(c2[580],simde_mm256_xor_si256(c2[548],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[133],simde_mm256_xor_si256(c2[836],simde_mm256_xor_si256(c2[297],simde_mm256_xor_si256(c2[265],simde_mm256_xor_si256(c2[712],simde_mm256_xor_si256(c2[749],simde_mm256_xor_si256(c2[717],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[816],simde_mm256_xor_si256(c2[528],simde_mm256_xor_si256(c2[849],simde_mm256_xor_si256(c2[305],simde_mm256_xor_si256(c2[820],simde_mm256_xor_si256(c2[148],simde_mm256_xor_si256(c2[856],simde_mm256_xor_si256(c2[824],simde_mm256_xor_si256(c2[985],simde_mm256_xor_si256(c2[441],simde_mm256_xor_si256(c2[797],simde_mm256_xor_si256(c2[604],simde_mm256_xor_si256(c2[929],simde_mm256_xor_si256(c2[416],simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[357],simde_mm256_xor_si256(c2[325],simde_mm256_xor_si256(c2[804],c2[932]))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 21
|
|
d2[42]=simde_mm256_xor_si256(c2[832],simde_mm256_xor_si256(c2[769],simde_mm256_xor_si256(c2[65],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[836],simde_mm256_xor_si256(c2[804],simde_mm256_xor_si256(c2[936],simde_mm256_xor_si256(c2[392],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[365],simde_mm256_xor_si256(c2[749],simde_mm256_xor_si256(c2[941],simde_mm256_xor_si256(c2[464],simde_mm256_xor_si256(c2[176],simde_mm256_xor_si256(c2[529],simde_mm256_xor_si256(c2[497],simde_mm256_xor_si256(c2[468],simde_mm256_xor_si256(c2[853],simde_mm256_xor_si256(c2[821],simde_mm256_xor_si256(c2[472],simde_mm256_xor_si256(c2[633],simde_mm256_xor_si256(c2[121],simde_mm256_xor_si256(c2[89],simde_mm256_xor_si256(c2[445],simde_mm256_xor_si256(c2[284],simde_mm256_xor_si256(c2[252],simde_mm256_xor_si256(c2[577],simde_mm256_xor_si256(c2[64],simde_mm256_xor_si256(c2[161],simde_mm256_xor_si256(c2[129],simde_mm256_xor_si256(c2[353],simde_mm256_xor_si256(c2[996],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[612],c2[580]))))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 22
|
|
d2[44]=simde_mm256_xor_si256(c2[964],c2[1001]);
|
|
|
|
//row: 23
|
|
d2[46]=simde_mm256_xor_si256(c2[736],simde_mm256_xor_si256(c2[365],c2[469]));
|
|
|
|
//row: 24
|
|
d2[48]=simde_mm256_xor_si256(c2[453],simde_mm256_xor_si256(c2[360],c2[292]));
|
|
|
|
//row: 25
|
|
d2[50]=simde_mm256_xor_si256(c2[129],c2[916]);
|
|
|
|
//row: 26
|
|
d2[52]=simde_mm256_xor_si256(c2[289],simde_mm256_xor_si256(c2[257],simde_mm256_xor_si256(c2[64],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[1],simde_mm256_xor_si256(c2[513],simde_mm256_xor_si256(c2[320],simde_mm256_xor_si256(c2[676],simde_mm256_xor_si256(c2[644],simde_mm256_xor_si256(c2[453],simde_mm256_xor_si256(c2[548],simde_mm256_xor_si256(c2[357],simde_mm256_xor_si256(c2[68],simde_mm256_xor_si256(c2[229],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[393],simde_mm256_xor_si256(c2[361],simde_mm256_xor_si256(c2[168],simde_mm256_xor_si256(c2[649],simde_mm256_xor_si256(c2[808],simde_mm256_xor_si256(c2[617],simde_mm256_xor_si256(c2[936],simde_mm256_xor_si256(c2[845],simde_mm256_xor_si256(c2[813],simde_mm256_xor_si256(c2[620],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[172],simde_mm256_xor_si256(c2[1004],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[173],simde_mm256_xor_si256(c2[944],simde_mm256_xor_si256(c2[912],simde_mm256_xor_si256(c2[721],simde_mm256_xor_si256(c2[624],simde_mm256_xor_si256(c2[433],simde_mm256_xor_si256(c2[784],simde_mm256_xor_si256(c2[945],simde_mm256_xor_si256(c2[752],simde_mm256_xor_si256(c2[948],simde_mm256_xor_si256(c2[916],simde_mm256_xor_si256(c2[725],simde_mm256_xor_si256(c2[85],simde_mm256_xor_si256(c2[244],simde_mm256_xor_si256(c2[53],simde_mm256_xor_si256(c2[952],simde_mm256_xor_si256(c2[920],simde_mm256_xor_si256(c2[729],simde_mm256_xor_si256(c2[88],simde_mm256_xor_si256(c2[56],simde_mm256_xor_si256(c2[888],simde_mm256_xor_si256(c2[376],simde_mm256_xor_si256(c2[537],simde_mm256_xor_si256(c2[344],simde_mm256_xor_si256(c2[925],simde_mm256_xor_si256(c2[893],simde_mm256_xor_si256(c2[700],simde_mm256_xor_si256(c2[541],simde_mm256_xor_si256(c2[700],simde_mm256_xor_si256(c2[509],simde_mm256_xor_si256(c2[508],simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[1025],simde_mm256_xor_si256(c2[832],simde_mm256_xor_si256(c2[512],simde_mm256_xor_si256(c2[321],simde_mm256_xor_si256(c2[416],simde_mm256_xor_si256(c2[577],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[453],simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[932],simde_mm256_xor_si256(c2[900],simde_mm256_xor_si256(c2[709],simde_mm256_xor_si256(c2[869],simde_mm256_xor_si256(c2[1028],c2[837])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 27
|
|
d2[54]=simde_mm256_xor_si256(c2[256],c2[760]);
|
|
|
|
//row: 28
|
|
d2[56]=simde_mm256_xor_si256(c2[69],simde_mm256_xor_si256(c2[169],c2[244]));
|
|
|
|
//row: 29
|
|
d2[58]=simde_mm256_xor_si256(c2[576],c2[912]);
|
|
|
|
//row: 30
|
|
d2[60]=simde_mm256_xor_si256(c2[232],simde_mm256_xor_si256(c2[533],simde_mm256_xor_si256(c2[316],c2[676])));
|
|
|
|
//row: 31
|
|
d2[62]=simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[544],simde_mm256_xor_si256(c2[677],simde_mm256_xor_si256(c2[581],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[325],simde_mm256_xor_si256(c2[392],simde_mm256_xor_si256(c2[873],simde_mm256_xor_si256(c2[841],simde_mm256_xor_si256(c2[844],simde_mm256_xor_si256(c2[205],simde_mm256_xor_si256(c2[397],simde_mm256_xor_si256(c2[945],simde_mm256_xor_si256(c2[657],simde_mm256_xor_si256(c2[1008],simde_mm256_xor_si256(c2[976],simde_mm256_xor_si256(c2[949],simde_mm256_xor_si256(c2[309],simde_mm256_xor_si256(c2[277],simde_mm256_xor_si256(c2[953],simde_mm256_xor_si256(c2[89],simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[568],simde_mm256_xor_si256(c2[924],simde_mm256_xor_si256(c2[765],simde_mm256_xor_si256(c2[733],simde_mm256_xor_si256(c2[33],simde_mm256_xor_si256(c2[545],simde_mm256_xor_si256(c2[640],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[452],simde_mm256_xor_si256(c2[933],simde_mm256_xor_si256(c2[68],c2[36])))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 32
|
|
d2[64]=simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[449],simde_mm256_xor_si256(c2[416],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[705],simde_mm256_xor_si256(c2[577],simde_mm256_xor_si256(c2[868],simde_mm256_xor_si256(c2[836],simde_mm256_xor_si256(c2[740],simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[585],simde_mm256_xor_si256(c2[553],simde_mm256_xor_si256(c2[1000],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[1005],simde_mm256_xor_si256(c2[396],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[556],simde_mm256_xor_si256(c2[113],simde_mm256_xor_si256(c2[81],simde_mm256_xor_si256(c2[816],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[117],simde_mm256_xor_si256(c2[85],simde_mm256_xor_si256(c2[436],simde_mm256_xor_si256(c2[405],simde_mm256_xor_si256(c2[121],simde_mm256_xor_si256(c2[89],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[729],simde_mm256_xor_si256(c2[92],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[892],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[769],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[613],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[69],c2[197]))))))))))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 33
|
|
d2[66]=simde_mm256_xor_si256(c2[609],simde_mm256_xor_si256(c2[544],simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[996],simde_mm256_xor_si256(c2[900],simde_mm256_xor_si256(c2[581],simde_mm256_xor_si256(c2[713],simde_mm256_xor_si256(c2[137],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[140],simde_mm256_xor_si256(c2[524],simde_mm256_xor_si256(c2[716],simde_mm256_xor_si256(c2[241],simde_mm256_xor_si256(c2[976],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[245],simde_mm256_xor_si256(c2[596],simde_mm256_xor_si256(c2[249],simde_mm256_xor_si256(c2[408],simde_mm256_xor_si256(c2[889],simde_mm256_xor_si256(c2[220],simde_mm256_xor_si256(c2[29],simde_mm256_xor_si256(c2[157],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[864],simde_mm256_xor_si256(c2[929],simde_mm256_xor_si256(c2[773],simde_mm256_xor_si256(c2[229],c2[357]))))))))))))))))))))))))))));
|
|
|
|
//row: 34
|
|
d2[68]=simde_mm256_xor_si256(c2[960],simde_mm256_xor_si256(c2[928],simde_mm256_xor_si256(c2[385],simde_mm256_xor_si256(c2[897],simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[320],simde_mm256_xor_si256(c2[161],simde_mm256_xor_si256(c2[641],simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[324],simde_mm256_xor_si256(c2[292],simde_mm256_xor_si256(c2[772],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[676],simde_mm256_xor_si256(c2[389],simde_mm256_xor_si256(c2[900],simde_mm256_xor_si256(c2[357],simde_mm256_xor_si256(c2[41],simde_mm256_xor_si256(c2[9],simde_mm256_xor_si256(c2[489],simde_mm256_xor_si256(c2[968],simde_mm256_xor_si256(c2[456],simde_mm256_xor_si256(c2[936],simde_mm256_xor_si256(c2[493],simde_mm256_xor_si256(c2[461],simde_mm256_xor_si256(c2[941],simde_mm256_xor_si256(c2[877],simde_mm256_xor_si256(c2[845],simde_mm256_xor_si256(c2[300],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[492],simde_mm256_xor_si256(c2[592],simde_mm256_xor_si256(c2[560],simde_mm256_xor_si256(c2[17],simde_mm256_xor_si256(c2[272],simde_mm256_xor_si256(c2[752],simde_mm256_xor_si256(c2[80],simde_mm256_xor_si256(c2[593],simde_mm256_xor_si256(c2[48],simde_mm256_xor_si256(c2[596],simde_mm256_xor_si256(c2[564],simde_mm256_xor_si256(c2[21],simde_mm256_xor_si256(c2[404],simde_mm256_xor_si256(c2[917],simde_mm256_xor_si256(c2[372],simde_mm256_xor_si256(c2[600],simde_mm256_xor_si256(c2[568],simde_mm256_xor_si256(c2[25],simde_mm256_xor_si256(c2[761],simde_mm256_xor_si256(c2[729],simde_mm256_xor_si256(c2[184],simde_mm256_xor_si256(c2[697],simde_mm256_xor_si256(c2[185],simde_mm256_xor_si256(c2[665],simde_mm256_xor_si256(c2[573],simde_mm256_xor_si256(c2[541],simde_mm256_xor_si256(c2[1021],simde_mm256_xor_si256(c2[860],simde_mm256_xor_si256(c2[348],simde_mm256_xor_si256(c2[828],simde_mm256_xor_si256(c2[705],simde_mm256_xor_si256(c2[673],simde_mm256_xor_si256(c2[128],simde_mm256_xor_si256(c2[160],simde_mm256_xor_si256(c2[640],simde_mm256_xor_si256(c2[737],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[705],simde_mm256_xor_si256(c2[101],simde_mm256_xor_si256(c2[69],simde_mm256_xor_si256(c2[549],simde_mm256_xor_si256(c2[580],simde_mm256_xor_si256(c2[548],simde_mm256_xor_si256(c2[1028],simde_mm256_xor_si256(c2[165],simde_mm256_xor_si256(c2[676],c2[133]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 35
|
|
d2[70]=simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[161],simde_mm256_xor_si256(c2[480],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[613],simde_mm256_xor_si256(c2[517],simde_mm256_xor_si256(c2[196],simde_mm256_xor_si256(c2[805],simde_mm256_xor_si256(c2[360],simde_mm256_xor_si256(c2[328],simde_mm256_xor_si256(c2[777],simde_mm256_xor_si256(c2[812],simde_mm256_xor_si256(c2[780],simde_mm256_xor_si256(c2[141],simde_mm256_xor_si256(c2[333],simde_mm256_xor_si256(c2[881],simde_mm256_xor_si256(c2[593],simde_mm256_xor_si256(c2[912],simde_mm256_xor_si256(c2[885],simde_mm256_xor_si256(c2[213],simde_mm256_xor_si256(c2[277],simde_mm256_xor_si256(c2[921],simde_mm256_xor_si256(c2[889],simde_mm256_xor_si256(c2[25],simde_mm256_xor_si256(c2[504],simde_mm256_xor_si256(c2[860],simde_mm256_xor_si256(c2[669],simde_mm256_xor_si256(c2[992],simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[544],simde_mm256_xor_si256(c2[420],simde_mm256_xor_si256(c2[388],simde_mm256_xor_si256(c2[869],c2[997]))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 36
|
|
d2[72]=simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[201],c2[860]));
|
|
|
|
//row: 37
|
|
d2[74]=simde_mm256_xor_si256(c2[97],simde_mm256_xor_si256(c2[992],simde_mm256_xor_si256(c2[32],simde_mm256_xor_si256(c2[929],simde_mm256_xor_si256(c2[353],simde_mm256_xor_si256(c2[225],simde_mm256_xor_si256(c2[484],simde_mm256_xor_si256(c2[356],simde_mm256_xor_si256(c2[388],simde_mm256_xor_si256(c2[260],simde_mm256_xor_si256(c2[996],simde_mm256_xor_si256(c2[69],simde_mm256_xor_si256(c2[964],simde_mm256_xor_si256(c2[201],simde_mm256_xor_si256(c2[73],simde_mm256_xor_si256(c2[552],simde_mm256_xor_si256(c2[648],simde_mm256_xor_si256(c2[520],simde_mm256_xor_si256(c2[653],simde_mm256_xor_si256(c2[525],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[909],simde_mm256_xor_si256(c2[204],simde_mm256_xor_si256(c2[76],simde_mm256_xor_si256(c2[752],simde_mm256_xor_si256(c2[624],simde_mm256_xor_si256(c2[464],simde_mm256_xor_si256(c2[336],simde_mm256_xor_si256(c2[689],simde_mm256_xor_si256(c2[785],simde_mm256_xor_si256(c2[657],simde_mm256_xor_si256(c2[756],simde_mm256_xor_si256(c2[628],simde_mm256_xor_si256(c2[1013],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[981],simde_mm256_xor_si256(c2[760],simde_mm256_xor_si256(c2[632],simde_mm256_xor_si256(c2[921],simde_mm256_xor_si256(c2[793],simde_mm256_xor_si256(c2[281],simde_mm256_xor_si256(c2[377],simde_mm256_xor_si256(c2[249],simde_mm256_xor_si256(c2[733],simde_mm256_xor_si256(c2[605],simde_mm256_xor_si256(c2[444],simde_mm256_xor_si256(c2[540],simde_mm256_xor_si256(c2[412],simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[737],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[224],simde_mm256_xor_si256(c2[321],simde_mm256_xor_si256(c2[417],simde_mm256_xor_si256(c2[289],simde_mm256_xor_si256(c2[261],simde_mm256_xor_si256(c2[133],simde_mm256_xor_si256(c2[740],simde_mm256_xor_si256(c2[612],simde_mm256_xor_si256(c2[772],simde_mm256_xor_si256(c2[868],c2[740])))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 38
|
|
d2[76]=simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[449],simde_mm256_xor_si256(c2[384],simde_mm256_xor_si256(c2[705],simde_mm256_xor_si256(c2[868],simde_mm256_xor_si256(c2[836],simde_mm256_xor_si256(c2[740],simde_mm256_xor_si256(c2[421],simde_mm256_xor_si256(c2[996],simde_mm256_xor_si256(c2[585],simde_mm256_xor_si256(c2[553],simde_mm256_xor_si256(c2[1000],simde_mm256_xor_si256(c2[12],simde_mm256_xor_si256(c2[1005],simde_mm256_xor_si256(c2[364],simde_mm256_xor_si256(c2[556],simde_mm256_xor_si256(c2[81],simde_mm256_xor_si256(c2[816],simde_mm256_xor_si256(c2[112],simde_mm256_xor_si256(c2[85],simde_mm256_xor_si256(c2[436],simde_mm256_xor_si256(c2[84],simde_mm256_xor_si256(c2[121],simde_mm256_xor_si256(c2[89],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[729],simde_mm256_xor_si256(c2[60],simde_mm256_xor_si256(c2[892],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[769],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[613],simde_mm256_xor_si256(c2[69],c2[197]))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 39
|
|
d2[78]=simde_mm256_xor_si256(c2[353],simde_mm256_xor_si256(c2[321],simde_mm256_xor_si256(c2[288],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[577],simde_mm256_xor_si256(c2[481],simde_mm256_xor_si256(c2[740],simde_mm256_xor_si256(c2[708],simde_mm256_xor_si256(c2[612],simde_mm256_xor_si256(c2[293],simde_mm256_xor_si256(c2[457],simde_mm256_xor_si256(c2[425],simde_mm256_xor_si256(c2[872],simde_mm256_xor_si256(c2[909],simde_mm256_xor_si256(c2[877],simde_mm256_xor_si256(c2[268],simde_mm256_xor_si256(c2[236],simde_mm256_xor_si256(c2[428],simde_mm256_xor_si256(c2[1008],simde_mm256_xor_si256(c2[976],simde_mm256_xor_si256(c2[688],simde_mm256_xor_si256(c2[1009],simde_mm256_xor_si256(c2[1012],simde_mm256_xor_si256(c2[980],simde_mm256_xor_si256(c2[308],simde_mm256_xor_si256(c2[1016],simde_mm256_xor_si256(c2[984],simde_mm256_xor_si256(c2[152],simde_mm256_xor_si256(c2[120],simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[989],simde_mm256_xor_si256(c2[957],simde_mm256_xor_si256(c2[764],simde_mm256_xor_si256(c2[413],simde_mm256_xor_si256(c2[96],simde_mm256_xor_si256(c2[64],simde_mm256_xor_si256(c2[576],simde_mm256_xor_si256(c2[641],simde_mm256_xor_si256(c2[517],simde_mm256_xor_si256(c2[485],simde_mm256_xor_si256(c2[996],simde_mm256_xor_si256(c2[964],c2[69]))))))))))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 40
|
|
d2[80]=simde_mm256_xor_si256(c2[608],simde_mm256_xor_si256(c2[0],simde_mm256_xor_si256(c2[545],simde_mm256_xor_si256(c2[960],simde_mm256_xor_si256(c2[864],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[389],simde_mm256_xor_si256(c2[901],simde_mm256_xor_si256(c2[293],simde_mm256_xor_si256(c2[4],simde_mm256_xor_si256(c2[580],simde_mm256_xor_si256(c2[997],simde_mm256_xor_si256(c2[712],simde_mm256_xor_si256(c2[104],simde_mm256_xor_si256(c2[585],simde_mm256_xor_si256(c2[136],simde_mm256_xor_si256(c2[553],simde_mm256_xor_si256(c2[8],simde_mm256_xor_si256(c2[141],simde_mm256_xor_si256(c2[556],simde_mm256_xor_si256(c2[525],simde_mm256_xor_si256(c2[940],simde_mm256_xor_si256(c2[717],simde_mm256_xor_si256(c2[109],simde_mm256_xor_si256(c2[240],simde_mm256_xor_si256(c2[657],simde_mm256_xor_si256(c2[977],simde_mm256_xor_si256(c2[369],simde_mm256_xor_si256(c2[720],simde_mm256_xor_si256(c2[273],simde_mm256_xor_si256(c2[688],simde_mm256_xor_si256(c2[244],simde_mm256_xor_si256(c2[661],simde_mm256_xor_si256(c2[21],simde_mm256_xor_si256(c2[597],simde_mm256_xor_si256(c2[1012],simde_mm256_xor_si256(c2[248],simde_mm256_xor_si256(c2[665],simde_mm256_xor_si256(c2[409],simde_mm256_xor_si256(c2[824],simde_mm256_xor_si256(c2[312],simde_mm256_xor_si256(c2[888],simde_mm256_xor_si256(c2[280],simde_mm256_xor_si256(c2[221],simde_mm256_xor_si256(c2[636],simde_mm256_xor_si256(c2[477],simde_mm256_xor_si256(c2[28],simde_mm256_xor_si256(c2[445],simde_mm256_xor_si256(c2[353],simde_mm256_xor_si256(c2[768],simde_mm256_xor_si256(c2[865],simde_mm256_xor_si256(c2[257],simde_mm256_xor_si256(c2[352],simde_mm256_xor_si256(c2[928],simde_mm256_xor_si256(c2[320],simde_mm256_xor_si256(c2[772],simde_mm256_xor_si256(c2[164],simde_mm256_xor_si256(c2[228],simde_mm256_xor_si256(c2[645],simde_mm256_xor_si256(c2[805],simde_mm256_xor_si256(c2[356],c2[773]))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));
|
|
|
|
//row: 41
|
|
d2[82]=simde_mm256_xor_si256(c2[993],simde_mm256_xor_si256(c2[961],simde_mm256_xor_si256(c2[896],simde_mm256_xor_si256(c2[192],simde_mm256_xor_si256(c2[357],simde_mm256_xor_si256(c2[325],simde_mm256_xor_si256(c2[229],simde_mm256_xor_si256(c2[933],simde_mm256_xor_si256(c2[36],simde_mm256_xor_si256(c2[72],simde_mm256_xor_si256(c2[40],simde_mm256_xor_si256(c2[489],simde_mm256_xor_si256(c2[524],simde_mm256_xor_si256(c2[492],simde_mm256_xor_si256(c2[876],simde_mm256_xor_si256(c2[45],simde_mm256_xor_si256(c2[593],simde_mm256_xor_si256(c2[305],simde_mm256_xor_si256(c2[624],simde_mm256_xor_si256(c2[597],simde_mm256_xor_si256(c2[948],simde_mm256_xor_si256(c2[181],simde_mm256_xor_si256(c2[633],simde_mm256_xor_si256(c2[601],simde_mm256_xor_si256(c2[760],simde_mm256_xor_si256(c2[216],simde_mm256_xor_si256(c2[572],simde_mm256_xor_si256(c2[381],simde_mm256_xor_si256(c2[704],simde_mm256_xor_si256(c2[193],simde_mm256_xor_si256(c2[256],simde_mm256_xor_si256(c2[132],simde_mm256_xor_si256(c2[100],simde_mm256_xor_si256(c2[581],c2[709]))))))))))))))))))))))))))))))))));
|
|
}
|
|
}
|
|
#endif
|